2010-07-28 75 views
0

我發佈這個主題,因爲我的iPhone應用程序自3天以來有問題。我希望有人能幫助我,因爲我瘋了。訪問一個對象的NSMutableArray

這是事情:我用XML解析器在我的應用程序的委託中填充一個對象userXMLData。此對象包含許多NSString和一個包含對象類型爲Album的NSMutableArrays。

我的問題是:我可以用一個內部函數顯示userXMLData的所有數據,但是當我試圖從我的viewController中的數組中獲取數據時,它不起作用。我的意思是,它崩潰。這很奇怪,因爲我可以訪問到appDelegate.userXMLData.NSString但不是我的appDelegate.userXMLData.NSMutableArray的

這裏是我的代碼:

// Initializaiton in the delegate 
userXMLData = [[UserXMLData alloc] init]; 
userXMLData.myArray = [[NSMutableArray alloc] init]; 

UserXMLData.h

@interface UserXMLData : NSObject { 
    // User Data 
    NSString *userId; 
    // Content 
    NSMutableArray *myArray; 
} 

@property(nonatomic, retain) NSString *myString; 
@property(nonatomic, copy) NSMutableArray *myArray; 

@end 

// Album.h

@interface Album : NSObject { 
    NSString *albumId; 
    NSMutableArray *content; 
} 

@property(nonatomic, retain) NSString *albumId; 
@property(nonatomic, retain) NSMutableArray *content; 

@end 

正如我所說,我真的不知道爲什麼它崩潰。我卡住了,如果不修復它,我就無法繼續我的應用程序。

回答

0

啓用殭屍按照這裏的說明:

http://loufranco.com/blog/files/debugging-memory-iphone.html

這將導致您的應用程序不會釋放任何對象,而是使他們抱怨到控制檯,如果消息是發佈後發給他們。

碰撞最常見的原因是釋放太頻繁(或保留時間太少)。

此外,運行構建和分析有時可以指出這些。

+0

是的,你是對的。我發現了我的錯誤,就在我想要打印數據的時候,我發佈了一個對象,它與我的真實對象是同一個指針。 – iLionel 2010-07-29 13:48:16

0

如果您在代碼中顯示您嘗試訪問陣列的代碼以及在崩潰時收到的錯誤,將能夠更好地回答問題,但我會冒險猜測您沒有@synthesize myArray你的實現(.M)文件