iOS编程读书笔记之Objective-C
对象
-
使用对象
- 创建对象
Party *partyInstance = [[Party alloc]init]
这种将两个消息合在一行代码中的做法称为嵌套消息发送(nested message send).程序会先执行最里面那个方括号的代码,所以Party类会先收到alloc消息.接着,alloc方法会返回指向新创建对象的指针.最后,未初始化的对象会收到init消息,返回初始化后的对象指针,并将指针保存在变量中.
- 发送消息
消息发送语法的组成结构,首先消息必须写在一对方括号中.方括号中的消息包含如下三部分.
接收方(receiver) 指针,指向执行方法的对象
选择器(selector) 需要执行方法的方法名
实参(arguments) 以变量形式传给方法的数值
以Party类为例,向Party对象发送addAttendee:消息,可以添加参加聚会的客人:
[partyInstance addAttendee:somePerson];
向partyInstance(接收方)发送addAttendee:消息会触发addAttendee:方法(取决于选择器),并传入somePerson(实参).
//创建一个NSMutableArray对象
NSMutableArray *items = [[NSMutableArray alloc]init];
//向items所指向的NSMutableArray对象发送addObject:消息
[items addObject:@"zero"];
[items addObject:@"one"];
[items addObject:@"two"];
[items addObject:@"three"];
for (int i = 0; i < items.count; i++) {
NSLog(@"%@",items[i]);
}
部分类的层次结构.JPG
- 格式化字符串
程序在处理格式字符串时,如果遇到%@,则不会将其直接替换为相应位置的实参.程序会先向相应位置的实参发送description消息,得到description方法所返回的NSString对象,然后使用得到的Nsstring对象替换%@.
创建一个Person类,在.m文件里重写description方法
- (NSString *)description {
return [NSString stringWithFormat:@"%@",@"小龙"];
}
当我们NSLog的时候就会打印小龙
Person *person = [[Person alloc]init];
NSLog(@"%@",person);
在后面我们字典转模型的时候重写会** description**方法,打印模型中的数据