2017-09-05 85 views
1

如果我在類上有一個類別,並且我寫了一個返回類型但沒有提及類別的構造函數,那麼Xcode不應該用警告標記該類型嗎?在方法的返回類型中指示一個ObjC類別

@implementation NSDate (MyBigDates)  
+ (NSDate*) bigFubarDate { 

} 

// versus: 
+ (NSDate(MyBigDates) *) bigFubarDate { 

} 
// or better: 
+ (instancetype) bigFubarDate { 

} 

由於對象返回具有NSDate的方法MyBigDates的。

回答

1

ObjC的性質是,NSDate在你的程序中有這些方法,包括那些以其他方式創建的方法。包括那些你沒有創建的類。*類中的方法作爲啓動過程的一部分添加到類中,幾乎放在其他任何東西之前。

既然如此,沒有「NSDate與這些方法」的符號,因爲沒有區別。


*這就是爲什麼添加到框架類的方法的前綴很重要。

+0

那麼爲什麼使用instancetype,或者甚至[[[self class] alloc] init]? – fff444

+1

@ fff444'instancetype'說「這個類或子類的一個實例」。沒有任何明確的說法。同樣,在類方法中使用'self'可以讓subclassers有機會覆蓋被調用的方法。 – bbum

相關問題