2011-07-11 59 views
0

我有問題初始化nsdictionary並將其添加到數組。我嘗試了兩次appoaches,但都失敗了。我的字典始終爲空。NSDictionary總是顯示爲空

Appoach1:

NSMutableDictionary *Data =[[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1",@"State_Name",@"2",@"Name",@"3",@"Address",@"4",@"Ph", nil];// initialized in viewdidload 


-(void)find:(NSInteger)Item{ 


     switch (Item) { 
     case 0: 

      [Data setValue:string forKey:@"State_Name"]; 
      break; 
     case 1: 
      [Data setValue:string forKey:@"Name"]; 
      break; 
     case 2: 
      [Data setValue:string forKey:@"TAddress"]; 
      break; 
     case 3: 
      [Data setValue:string forKey:@"Ph"]; 
      break; 
     default: 
      break; 
    }   
} 

Approach2:

NSMutableDictionary *Data =[[NSMutableDictionary alloc] initWithObjectsAndKeys:str1,@"State_Name",str2,@"Name",str3,@"Address",str4,@"Ph", nil]; 

可以在任何一個可以告訴什麼是錯,此代碼。我是否以錯誤的方式使用nsdictionary?

謝謝

+0

在哪裏數組? – aherlambang

+0

你可以移植整個viewDidLoad代碼嗎? – edo42

+0

您需要發佈更多的代碼,包括實際無效的代碼以及您看到問題的位置(即您認爲是NULL,以及您爲什麼這麼認爲)。 – smorgan

回答

1

代碼看起來正確。我的猜測是string是零。 setValue:forKey:允許零(反過來刪除現有的對象)。
嘗試setObject:forKey:,它會引發異常,如果值(字符串)是零或檢查字符串是零......

0

要在第一種方法: 究竟是什麼spposed是你在初始化器鍵,你的價值? 在我看來,你混淆了訂單。

除此之外:您將字符串放入字典中,但引用交換機中的nsinteger。你是否正在進行轉換?

+0

加入上面的點,我認爲你應該存儲NSInteger作爲存儲的對象 – aherlambang

+0

我只是試圖把一些隨機值,然後用開關情況下的實際值替換。 – pa12

2

我執行你的代碼 你有什麼變化做的是: - 在.h文件中寫: -

NSMutableDictionary *Data; 
在.m文件寫入

: -

Data =[[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1",@"State_Name",@"2",@"Name",@"3",@"Address",@"4",@"Ph", nil];// initialized in viewdidload 
+0

我在合成後立即在.m中聲明瞭nsdictionary。我們不能這樣做嗎? – pa12

+0

我只是試圖把一些隨機值,然後用開關情況下的實際值進行替換。 – pa12