相关疑难解决方法(0)

为什么在类方法BAD中"self = [[Rectangle alloc] init]"?

在Apple的"Objective-C Programming Language"文档中,第48页说:

+ (Rectangle *)rectangleOfColor:(NSColor *) color
{
    self = [[Rectangle alloc] init]; // BAD
    [self setColor:color];
    return self;
}

+ (id)rectangleOfColor:(NSColor *)color
{
     id newInstance = [[Rectangle alloc] init]; // GOOD
     [newInstance setColor:color];
     return newInstance;
}


+ (id)rectangleOfColor:(NSColor *)color
{
     id newInstance = [[self alloc] init]; // EXCELLENT
     [newInstance setColor:color];
     return newInstance;
}
Run Code Online (Sandbox Code Playgroud)

一个是坏的,一个是好的,另一个是优秀的.这是为什么?

cocoa objective-c class-method

8
推荐指数
3
解决办法
546
查看次数

标签 统计

class-method ×1

cocoa ×1

objective-c ×1