2011-11-15 57 views
0

當我定義應用程序崩潰的頭文件中使用的NSMutableString

NSMutableArray *numbers; 

在實施我在init方法

numbers = [[NSMutableArray alloc] init]; 

我字符串添加到這個數組

[numbers insertObject:number atIndex:[numbers count]]; 
第一初始化該陣列

但是,當我訪問這樣的陣列中的另一個方法

NSLog(@"%@", [numbers count]); 

應用程序崩潰。任何想法爲什麼發生這種情況

回答

1

你錯了這裏 -

NSLog(@"%@", [numbers count]); 

數組計數是一個整數值。使用%d而不是%@來打印整數。

NSLog(@"%d", [numbers count]); 
1

您的格式字符串與第二個參數的類型不匹配。

[numbers count]返回一個整數,而不是一個對象。

的「%@」格式說明表示對應的參數是一個對象,並且該對象將被髮送的消息-description。從該消息表達式返回的字符串將插入到「%@」的位置。你的應用崩潰,因爲它試圖發送消息給一個無效的接收器。