2010-02-08 109 views
0

我遇到了問題。每次我開始我的應用程序崩潰。這是我的代碼。 調試器說:[list count]崩潰的應用程序。我不知道。 NSLog(@"%@", self.list);給我按預期的一個項目...爲什麼NSMutableArray Count會崩潰我的應用程序?

if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) { 
    data = [[NSData alloc] initWithContentsOfFile:filePath]; 
    unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; 

    NSMutableArray *array = [unarchiver decodeObjectForKey:@"TOWN"]; 
    [unarchiver finishDecoding]; 
    [unarchiver release]; 
    [data release]; 

}

self.list = array; 
    NSLog(@"%@", self.list); 
    NSLog(@"count %i", [list count]); 

被打開了一樣,創建存檔:

Adding *adding = [[Adding alloc] init]; 
adding.nummer = 1; 
adding.stadt = stadt.text; 


NSMutableData *data = [[NSMutableData alloc] init]; 
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] 
          initForWritingWithMutableData:data]; 
[archiver encodeObject:adding forKey:@"TOWN"]; 
[archiver finishEncoding]; 
[data writeToFile:[self dataFilePath] atomically:YES]; 

如果您需要任何futher代碼讓我知道。我將是任何幫助:)

+0

如何宣佈伊娃清單? – 2010-02-08 16:58:32

+0

確實[self.list count]崩潰(是和list.list.name一樣嗎?) – Mark 2010-02-08 17:05:28

+0

是的。一樣的。兩者都崩潰了...... – rdesign 2010-02-08 17:06:23

回答

1

非常心存感激。我認爲,問題是,你在這裏編碼添加類:

[archiver encodeObject:adding forKey:@"TOWN"]; 

這不是一個NSMutableArray然而,當你在你的解碼正試圖獲得它回作爲一個NSMutableArray在這裏:

NSMutableArray *array = [unarchiver decodeObjectForKey:@"TOWN"]; 

而我猜你的課加入不是一個數組。

+0

你的權利,如果我解碼它作爲一類添加它的作品。但如書中所述,將其分配給nsmutablearray。 http://apress.com/book/downloadfile/4476(如果你想你可以看看例子09)在PresidentsViewController.m – rdesign 2010-02-08 17:29:24

+0

我剛看了一下示例,你可以在那裏做,因爲@「總統」是一個pList文件。 – 2010-02-08 17:43:26

+0

感謝您的幫助! 是的,但它的存檔。我創建的那個也是一樣的。 我剛剛發現了一些東西。他們創建的存檔具有與NSMutableArray相同的最後一項定義。我得到了添加的def。怎麼可能改變它? 編輯:項目138顯示類... – rdesign 2010-02-08 17:46:58

相關問題