Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
(以下内容是对黑马苹果入学视频的个人知识点总结)
(一)id
1)简介:万能指针,能指向任何OC对象,相当于NSObject *
id类型的定义
typedef struct objc_object {
Class isa;
} *id;
2)使用注意
// 注意:id后面不要加上*
id p = [Person new];
3)局限性
调用一个不存在的方法,编译器会马上报错
int main(int argc, const char * argv[])
{
Person *p = [Person new]; // 点语法的本质还是方法调用
p.age = ; // [p setAge:10]; int a = p.age; // [p age]; p.name = @"Jack"; NSString *s = p.name; NSLog(@"%@", s); return ;
}
(二)构造方法
1)new的拆分两部曲
首先分配内存(alloc)再初始化(init)
Person *p = [[Person alloc] init];
2) init方法的重写
想在对象创建完毕后,成员变量马上就有一些默认的值,就可以将init方法的重写
- (id)init
{
if (self = [super init])
{
_age = ;
}
return self;
}
3)自定义构造方法
构造方法的一些规范
①返回值是id类型
②方法名都以init开头
- (id)initWithAge:(int)age {
if (self = [super init]) {
_age = age;
}
return self;
}
传递多个参数进行初始化
- (id) initWithAge:(int)age andNo:(int)no;