我一直在一個概念不太明白的概率上打破我的頭。說我在我的項目如下:從代表訪問對象的屬性
的AppDelegate MyClassA MyClassB MyViewController
在MyClassA,有一個由名稱CLASSB類型MyClassB的屬性。 MyClassB通過指針名稱myArray具有NSMutableArray類型的屬性。
當viewDidLoad中下MyViewController我實例MyClassA訪問myArray的在其(MyClassA的)MyClassB財產,如如下:
MyClassA *classA = [[MyClassA alloc] init];
NSLog([NSString stringWithFormat:@"%i", [[[classA classB] myArray] count]);
這將成功地顯示在日誌中的次數,並在同一時間,進一步訪問數組的內容工作正常。
然而,仍然在MyViewController,當MyClassA被實例化並從委託訪問如下:
AppDelegate *aDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSLog([NSString stringWithFormat:@"%i", [[[aDelegate classA] classB] myArray] count]]);
日誌仍然會顯示計數成功,但進一步訪問的內容數組失敗,顯示沒有錯誤,但「當前語言:auto當前目標-c」 - 只是它的一行。
這是一個奇怪的行爲,我無法確定。訪問在委託中實例化的對象並在函數中本地訪問對象(在ViewController的viewDidLoad中,如示例中)還是有所不同?
幫助是非常讚賞= d
確保「主動配置」設置爲「調試」,以便更好地檢查中斷點。 – Jordan 2009-10-05 17:19:39