我有一個類與特定的格式進行轉換不大一樣的NSDate到的NSString等我應該在塊中使用「self」來訪問類方法嗎?
每個方法都是類方法,如+[Tools humanReadableStringForDate:(NSDate*)date];
,我有時需要我的方法+[Tools A]
調用的方法+[Tools B]
我類,但在一個塊內。
我應該創建一個__block safeSelf = self;
還是不需要,因爲我使用類級方法?
編輯: 這裏有一個例子,不是我的實際代碼:
@implementation FileManager
+(void) uploadEveryFile:(void (^)(NSObject*))thingToDo :(NSArray*) fileArray {
for(NSString *s in fileArray) {
[[SomeWebAPI uploadFile:s withSuccess:^(NSNumber *responseCode) {
[self logUploadOk:s];
}];
}
}
+(void) logUploadOk:(NSString*)s {
NSLog(@"File upload ok : %@", s)
}
@end
我覺得這讓事情更清晰。我喜歡使用self
關鍵字,甚至當我可以使用類方法時 - 在這個例子中,我可以因爲我處於同一個類並引用一個類級別的方法 - 因爲它看起來更有意義,如果必須修改我的班級名稱。
那麼這樣寫是否正確?它工作但不是真的正確嗎?我真的需要用[FileManager logUploadOk:s]
撥打logUploadOk
嗎?
謝謝!
是的,的確,這可能很有趣!我總是忘記類別......關於我的問題:我知道如何調用類方法,但是當我從同一個類的另一個類方法調用它時,我更喜歡使用[self方法]。它會在一個區塊中工作嗎? – dvkch
我不認爲這會起作用,因爲自我指的是實例。你總是可以使用'+ [[self class] someClassMethod];'但我建議遵循一般指導原則。 –
它的工作原理,我想知道它是否可以使用它。所以謝謝,它似乎不是 – dvkch