A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程序猿-2014 中级黑马   /  2014-4-11 16:15  /  1002 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 程序猿-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;
}
求大神解惑

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

2 个回复

倒序浏览
id类型不能用点语法,可以改为[p setAge:10];希望我的回答对你有帮助。
回复 使用道具 举报
  1. int main()
  2. {
  3.     id p = [[Person alloc] init];
  4.    
  5.     /**
  6.      不是运行时才报错,这样写编译都通过不了。
  7.      p.age = 10;相当于 [p setAge:10];
  8.     id 是不能使用点语法,也可以这样理解:
  9.      id能指向任何OC对象,但是编译器是找不到setAge:这个方法的
  10.      编译器是很笨的!!!
  11.      */
  12.     p.age = 10;
  13.     NSLog(@"%d",age);
  14.     return 0;
  15. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马