1、选择器
请注意setSkinColor后面有一个冒号,因为它是带参数的。由于存在这样的一个表格,所以在程序执行的时候,我们可以方便的通过方法的名字,获取到方法的ID也就是我们所说的SEL,反之亦然。具体的使用方法如下:
1 SEL 变量名 = @selector(方法名字);
2 SEL 变量名 = NSSelectorFromString(方法名字的字符串);
3 NSString *变量名 = NSStringFromSelector(SEL参数);
其中第1行是直接在程序里面写上方法的名字,第2行是写上方法名字的字符串,第3行是通过SEL变量获得方法的名字。我们得到了SEL变量之后,可以通过下面的调用来给一个对象发送消息:
[对象 performSelector:SEL变量 withObject:参数1 withObject:参数2];
这样的机制大大的增加了我们的程序的灵活性,我们可以通过给一个方法传递SEL参数,让这个方法动态的执行某一个方法;我们也可以通过配置文件指定需要执行的方法,程序读取配置文件之后把方法的字符串翻译成为SEL变量然后给相应的对象发送这个消息。
2、获取私有变量的值
3、Objective-C 语法之常用数据结构
.数组与字典
NSArray 数组: 使用它创建数组后,就不可以继续向这个数组中添加或者删除元素。
这个数组中可以储存任意类型object的对象指针 但是不能用处储存数据类型 比如int bool char 等等
下面这行代码中我将三个字符串和self 指针储存在了mArray这个数组中
1 | //初始化不可变数组 |
2 | mArray =[[NSArray alloc] initWithObjects:@ "雨松MOMO" ,@ "15810463139" ,@ "xuanyusong@gmail.com" ,self,nil]; |
遍历方法一 : 很普遍java 语言 c 语言都这样来遍历
1 | int count = [mArray count]; |
2 | for ( int i = 0; i < count; i++) { |
3 | NSLog(@ "固定数组 %@" , [mArray objectAtIndex:i]); |
4 | } |
遍历方法二: objective-c 2.0 引入的快速枚举法 不仅速度快 并且安全性高,推荐使用这种方式来遍历.
1 | for (NSString * str in mArray) { |
2 | NSLog(@ "固定数组 %@" , str); |
3 | } |
打印Log信息,最后一项为self指针 ,所以将地址打印了出来。
NSMutableArray数组:它是一个可以变化的数组,数组创建完后还可以动态的向数组中添加与删除元素,并且可以向指定位置插入元素,基本上和链表差不多。
1 | //初始化可变数组 |
2 | mListArray=[NSMutableArray array]; |
addobject方法用于向数组中添加元素
1 | //添加数组 |
2 | - ( void )addArray: (NSObject *) str |
3 | { |
4 | [mListArray addObject:str]; |
5 | } |
removeObject方法用于删除元素
1 | //删除数组 |
2 | -( void ) deleteArray:(NSString *)str |
3 | { |
4 | [mListArray removeObject:str]; |
5 | |
6 | } |
4、字符串
//设置截取字符串的范围 |
20 | //从第二位到第十位 |
21 | NSRange rang = NSMakeRange(2, 10); |
22 | NSString * strRang = [str0 substringWithRange:rang]; |
23 | NSLog(@ "rang = %@" ,strRang); |
5、iOS 开发 对字符串进行分组
for (int i=0; i<arr.count; i++) {
NSString* str=[arr objectAtIndex:i];
NSLog(@" %@",str);
}