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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bhr756052342 中级黑马   /  2014-9-30 15:26  /  1067 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

# important<Foundation/Foundation.h>

@interface Person : NSObjece
@end


@implementatino Person
@end


int main()
{
    int *p = [Person new]
下面省略

这里在将继承的时候  老师说nwe 是NSObject中的方法

但是在一开始讲的时候  老师说

int *p= [Person xiaoming]

这样的是,定义了Person类的对象  xiaoming   

而上面[Person new]

是类方法的调用


这里关于区分类方法的调用,,还是新对象的定义。怎样区分????


}

3 个回复

正序浏览
区别类方法的调用主要看一点:调用者是谁,类方法只能由类(类名)来调用。 new方法是NSObject类中的方法,属于类方法。这个可以在官方文档中查找到。而我们通常情况下,遇到的类方法多数是自己定义的,这样的话,就可以看是不是以加号+开头了,+开头是类方法,- 开头是对象方法。简单一点:类方法调用就看调用者是不是类名,方法是不是 + 开头。    这里的xiaoming,你先看有没有方法名是xiaoming的,如果没有,那肯定不是类方法调用。由于对象通常都是由指针指向的(匿名对象除外),因此看到指针,优先排除了类方法调。,
回复 使用道具 举报
诺微_ 发表于 2014-9-30 17:55
int *p = 不对的,创建的是person的对象p,其类型应该为person哈,怎么是int类型的呢?老师真的这么讲的? ...

上述有个错误,其类型应该为person *
回复 使用道具 举报
int *p = [Person new]不对的,创建的是person的对象p,其类型应该为person哈,怎么是int类型的呢?老师真的这么讲的?不会吧!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马