黑马程序员技术交流社区

标题: 0基础,微博模拟设计视频中代码求解答 [打印本页]

作者: 星河鹭起    时间: 2014-6-7 22:14
标题: 0基础,微博模拟设计视频中代码求解答

int main(int argc, const char * argv[])
{
    // 分别创建两个人
    Person *p1 = [[Person alloc] init];
    Person *p2 = [[Person alloc] init];

    // 分别创建两个微博
    Status *s1 = [[Status alloc] init];
    Status *s2 = [[Status alloc] init];

    p1.name = @"lisi";
    s1.user = p1.name;
    s1.text = @"tianqihao";

    p2.name = @"wangwu";
    p2.sex = sexwoman;
    s2.user = p2.name;
    s2.text = @"tianqizhende henhao";
    s2.restatus = s1.text;

    NSLog(@"名字是%@的人,发了微博%@",p1.name,s1.text);
    NSLog(@"名字是%@的人,性别是%d,发了微博%@,并转发微博%@",s2.user,p2.sex,s2.text,s2.restatus);

    [s2 release];
    [s1 release];
    [p2 release];
    [p1 release];
}

问题:如果是s2.user = p2.name 则XCODE会出现警告,但是如果按照MJ老师的s2.user = p2,则不会打印出姓名的结果,求助求助。


作者: 傘が咲く    时间: 2014-6-12 08:41
s2内部属性user是一个Person对象,你给它赋值NSString对象name肯定是错误的,OC是弱语法,所以只是警告。

如果想打印结果显示出Person的name属性,可以手动重写Person的description方法:lol




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2