2010-08-10 59 views
0

我有以下聲明的實用程序方法,其中「players」是一個NSMutableArray對象和我的應用程序的視圖控制器的屬性。我的問題是,在這個方法被調用後,「玩家」仍然有0個對象。添加項目到NSMutableArray與功能結果在no

-(void)addPlayerNamed:(NSString *)name withLife:(NSNumber *)life{ 
    NSMutableDictionary *newPlayer = [NSMutableDictionary dictionaryWithCapacity:1]; 
    [newPlayer setObject:life forKey:name]; 
    [players addObject:newPlayer]; 
} 

回答

2

你是否將球員設置爲任何東西?你必須在使用它之前調用它,也許在初始化程序中。

players=[[NSMutableArray alloc] init]; 

如果玩家是一個屬性,你可能也想用

self.players 

代替

players 

(雖然後者仍然可以工作)

+1

如果'players'是一個帶有'retain'屬性的屬性,除非使用'autorelease'或者使用方便的方法'[NSMutableArray array]',否則它將會泄漏。 – dreamlax 2010-08-11 00:22:54

+1

更具描述性的是,您需要創建一個數組並將其指針存儲在'players'實例變量中。在你做之前,變量包含'nil',指向沒有對象的指針。如果您從筆尖加載代碼,則不需要在代碼中創建視圖;只要你在IB上連接了插座,加載筆尖將爲你設置插座變量。在這種情況下,因爲你沒有從nib加載數組(這是不可能的),你需要在代碼中創建它。 (我提到這是因爲有些人錯過了這個並創建了一個多餘的對象,然後不知不覺地用一個筆尖打斷了它。) – 2010-08-11 05:51:35

2

很可能,players爲零。任何消息返回0或零。

相關問題