本帖最后由 丶浩浩丶 于 2015-5-14 20:20 编辑
Person *p = [[Person alloc] init];这句你应该很了解,就是分配空间然后初始化
//个人理解:用对象去调用class方法([p class]),返回的就是创建这个对象的类.因为p是person创建的,所有p调用class返回的就是Person
class c = [p class];--> [p class]这个方法返回的就是Person类, 现在c就是一个类对象.(你现在可以认为c就是Person) //Class内部是自带*的,所以不用加*这个符号
Person *p1 = [c new];-->因为现在c就是Person,所以[c new]就相当于是[person new];
Person *p1 = [[c new] init]; 但是这句应该就不太对吧.调用new就相当于是 [[c alloc] init].你这么写的话应该就是这样了[[[c alloc] init] init];你这样算是把他初始化两次了.我不清楚这样会不会报错或是警告.但是这个写法看起来就不对.
(上面只是个人学习经验,要是有什么不对,谅解谅解..大体应该就是这么样)
发表完看了下,挺啰嗦的.耐心看下把. 希望楼下有更好的解答
|