2

這個問題大多比其他任何事情都好奇。但是我現在首先將所有私有方法放在我的@implementation中,這樣我就可以避免在這些方法的.m文件中創建一個單獨的類別。只要私人方法在任何其他方法被調用之前實現,一切都很好。我可以清楚地記得Xcode警告我,如果我試圖在實現它之前調用一個非聲明的方法......至少,我想我可以。現在我開始懷疑我的理智有點因爲Xcode現在似乎非常高興允許我調用任何未聲明的方法,只要其實現位於@implementation內的任何位置,即使該調用在實現之前發生。私有方法執行

這是最近的變化,還是我構建了一些古老的'C'限制我的方法順序?

Xcode現在的行爲方式,似乎沒有必要爲私有方法創建任何類別。就我個人而言,我覺得這很不錯。

編輯:我正在使用Xcode 4.3.1

+0

[Private Method Declaration Objective-C]的副本(http://stackoverflow.com/questions/9414410/private-method-declaration-objective-c) – 2012-03-10 18:56:49

回答

1

顯然你是對的。 xcode 4.2.1發出警告,4.3.1不會。

@implementation MyClass 


- (void) callMyPrivateMethod { 
    [self myPrivateMethod]; //<--- xcode 4.2.1 issues a warning here. 
    return; 
} 

- (void) myPrivateMethod { 
    return; 
} 

@end 

(我知道有沒有必要爲「迴歸的,但我有點老了有這方面fasioned。)

但是,這兩個版本將正確地構建它,它會銀行經營,除非你犯了一個方法名稱中的拼寫錯誤。

+0

感謝您的確認。我很確定它在早期版本的Xcode中不存在,但很高興有確認。這也是一個非常好的補充。 – 2012-03-10 19:37:04