2011-05-10 71 views
0

当我跑我下面的代码它显示我像下面帮我的NSDictionary问题

警告一个错误:“的NSMutableDictionary”可不回应“-setObject:forKey:forKey:”

什么问题在我的代码中。

myNumberOfPlayers = players; 

myDifficultyLevel = difficulty; 

myDuration = duration; 

myExcerciseId = excerciseId; 

NSMutableDictionary *myDictionary = [[ NSMutableDictionary alloc] init]; 
    [ myDictionary setObject:players forKey:players forKey:@"no_of_players"]; 
    [ myDictionary setObject:difficulty forKey:@"difficulty_level"]; 
    [ myDictionary setObject:duration forKey:@"duration_excercise"]; 
    [ myDictionary setObject:excerciseId forKey:@"Excercise_id"]; 

回答

4

它应该是

[myDictionary setObject:players forKey:@"no_of_players"]; 

代替

[myDictionary setObject:players forKey:players forKey:@"no_of_players"]; 
2

您正在调用一个不存在的方法。 你应该试试这个:

[ myDictionary setObject:players forKey:players ] 

或本

[ myDictionary setObject:players forKey:@"no_of_players"] 

我敢打赌,第二个选择是正确的。您的代码中可能存在拼写错误,并且意外地重复了players变量。

字典可以为确定的键设置对象。在同一个调用中设置一个对象给出两个不同的键是没有意义的。

2

此代码必须像

NSMutableDictionary *myDictionary = [[ NSMutableDictionary alloc] init]; 
[myDictionary setObject:players forKey:@"no_of_players"];//you cant call for key two time. 
[myDictionary setObject:difficulty forKey:@"difficulty_level"]; 
[myDictionary setObject:duration forKey:@"duration_excercise"]; 
[myDictionary setObject:excerciseId forKey:@"Excercise_id"]; 
3

的NSMutableDictionary * myDictionary = [[ALLOC的NSMutableDictionary] INIT];

[ myDictionary setObject:players forKey:@"no_of_players"]; 
[ myDictionary setObject:difficulty forKey:@"difficulty_level"]; 
[ myDictionary setObject:duration forKey:@"duration_excercise"]; 
[ myDictionary setObject:excerciseId forKey:@"Excercise_id"];