iOS的一些基础知识
最近不是很忙,所以抽空把之前学习的iOS相关的知识进行了一次梳理,同时也当成对自己知识的一次巩固!
Foundation框架中一些常用类的使用
(1)NSString
创建方式
1)NSString *s = @" ";//直接创建
2) NSString *s = [[NSString alloc] initWithFormat:@" ",*]//使用格式创建
3) NSString *s = [NSString alloc]initWithUTF8String:@""]//c字符串转OC字符串
4)NSString *s = [NSString alloc] initWithContentsOfFile:@"文件路径 "]//从文件读取信息 到字符串
(2)NSArray 创建方式
1)NSArray *arr = [NSArray array]//创建一个空数组
2)NSArray *arr = [NSArray arrayWithObject:@" "]
3)NSArray *arr = [NSArray arrayWithObjects:@"",@" ",nil]//创建多个元素的数组
4)NSArray *arr = @[@"",@"",@""]//快速创建一个数组
NSArray的遍历
1)for(id objc in array)
{ }
2)block遍历
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger inx, BOOL *stop)
{ }]
(3) NSDictionary创建方式
1)NSDictionary *dict = [NSDictionarydictionaryWithObject:@" " forKey:@""]
2) NSDIctionary *dict = [NSDictionarydictionaryWithObjects:arrayforKeys:array]
3) NSDictionary *dict =[NSDictionary dictionaryWithObjectsAndKeys:@"value",@"key",@"value",@"key",nil]
4) NSDictionary *dict = @{@"key":@"value",@"key":@"value"}
OC对象的Set方法:
note:
(1)方法名必须以set开头;
(2)Set后面跟上成员变量的名称,首字母大写;
(3)有跟成员变量一样的类型的参数;
(4)形参名不能成员变量名一样。
OC对象的Get方法:
note:
(1)有返回值,返回值的类型和成员变量的类型一致;
(2)方法名和成员变量名一样;
property属性跟synthesize属性:
这两个属性用于生成变量的默认Set方法和Get方法
synthesize关键字帮助生成成员变量的setter和getter方法的实现
1.synthesize属性的使用场景:
(1)同时重写了setter和getter函数;
(2)重写了只读属性property的getter方法(这里property必须声明在.m文件中)
(3)声明在@protocol中的property
(4)重载的属性
2.property属性用于生成变量的默认Set方法和Get方法的声明
property括号内属性详解:
assign :简单的赋值,不改变引用计数,主要针对基本类型;
retain(等同于strong) : 释放旧对象,将旧对象的值赋予输入对象,并将输入对象的索引计数+1,主要是NSObject与其子类(指针复制,指向同一块地址)
copy:创建一个索引计数为1的对象,释放掉原来的对象(内容复制)
readonly:表示只读属性,只会生成getter方法
readwrite:可进行读写操作,生成setter方法跟getter方法
nonatimic:非原子访问,不加同步,多线程并发访问
注意:xcode4.4以后,property属性声明同时实现了生成成员变量的get方法和set方法声明、get方法和set方法的实现以及对应变量的生成。这种方式生成的变量是私有的。如果get方法跟set方法都是手动实现的,编译器将不会生成成员变量