黑马程序员技术交流社区
标题:
关于 id 语法的问题
[打印本页]
作者:
程序猿-2014
时间:
2014-4-11 16:15
标题:
关于 id 语法的问题
本帖最后由 程序猿-2014 于 2014-4-12 11:13 编辑
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property int age;
@end
@implementation Person
@end
int main()
{
id p = [[Person alloc] init];
p.age = 10;//运行时这里报错是为什么?
NSLog(@"%d",age);
return 0;
}
求大神解惑
作者:
微尘•逐梦
时间:
2014-4-11 17:14
id类型不能用点语法,可以改为[p setAge:10];希望我的回答对你有帮助。
作者:
于清扬
时间:
2014-4-11 17:50
int main()
{
id p = [[Person alloc] init];
/**
不是运行时才报错,这样写编译都通过不了。
p.age = 10;相当于 [p setAge:10];
id 是不能使用点语法,也可以这样理解:
id能指向任何OC对象,但是编译器是找不到setAge:这个方法的
编译器是很笨的!!!
*/
p.age = 10;
NSLog(@"%d",age);
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2