2012-02-09 94 views
0
EmployeesArray = [[NSMutableArray alloc] initWithCapacity:100]; 
    Employees *Emp1 = [[Employees alloc] init];  
    Emp1.Number = 1; 
    Emp1.Name = @"Jamal"; 
    Emp1.Age = 16; 
    Emp1.Gender = @"Male"; 
    [EmployeesArray addObject:Emp1]; 
[Dic1 setValue:Emp1 forKey:@"A"]; 

- (IBAction)Retrieve:(id)sender { 

    Employees *objEmp2 = [Dic1 valueForKey:@"A"]; 
    printf(objEmp2.Name); 

} 

爲什麼這段代碼沒有檢索到名字?並出現錯誤?NSMutableDictionary not retrieve object

+0

改變是相同的結果! – 2012-02-09 16:31:46

+0

嘗試NSLog打印併發布你得到的錯誤。 ValueForKey是KVC,所以我認爲可以使用它。 – Vignesh 2012-02-09 16:42:27

回答

2

你初始化了Dic1字典?

// try doing this 
Dic1 = [[NSMutableDictionary alloc] init]; 

EmployeesArray = [[NSMutableArray alloc] initWithCapacity:100]; 
    Employees *Emp1 = [[Employees alloc] init];  
    Emp1.Number = 1; 
    Emp1.Name = @"Jamal"; 
    Emp1.Age = 16; 
    Emp1.Gender = @"Male"; 
    [EmployeesArray addObject:Emp1]; 
[Dic1 setObject:Emp1 forKey:@"A"]; 

- (IBAction)Retrieve:(id)sender { 

    Employees *objEmp2 = [Dic1 objectForKey:@"A"]; 
    printf(objEmp2.Name); 

} 
+0

感謝的很多人! :S – 2012-02-09 16:58:35

2

有三件事可能會有幫助。使用

  1. -setObject:forKey:代替-setValue:forKey 使用objectForKey代替valueForKey因爲您使用自定義類。
  2. 一般來說,使用objective-c風格-NSLog()而不是c風格的代碼會更容易。
  3. 確保已導入包含Employees類定義的頭文件,而不是將其用作當前.m文件的前向類。
+0

所有條件完成! 同樣的結果,錯誤!沒有工作! – 2012-02-09 16:42:27

2

您需要使用setObject:forKeyobjectForKey:方法而不是setValue:forKey:valueForKey:

相關問題