我是Objective-C的新手,我想写一本字典,但我有一个错误:
[fullCollaboraeur setObject:(id)tmpArray forKey:(id)col.Id];
这是完整的代码:
NSMutableArray *collaborateurs = [[NSMutableArray alloc] init];
...
NSMutableDictionary *fullCollaboraeur = [[NSMutableDictionary alloc] init];
for (Collaborateur *col in collaborateurs)
{
NSMutableArray *tmpArray;
tmpArray = [fullCollaboraeur objectForKey:(id)col.Id];
if(tmpArray == nil)
{
NSLog(@"Value for %i is null", col.Id);
tmpArray = [[NSMutableArray alloc] init];
[tmpArray addObject:col];
[fullCollaboraeur setObject:(id)tmpArray forKey:(id)col.Id];
}
else
{
NSLog(@"%i", col.Id);
[tmpArray addObject:col];
[fullCollaboraeur setObject:tmpArray forKey:(id)col.Id];
}
}
你能帮我吗?
非常感谢
答案 0 :(得分:5)
NSLog(@“%i的值为空”,col.Id); .... [fullCollaboraeur setObject:(id)tmpArray forKey:(id)col.Id];
如果Id
的类型为(int),则它不能直接作为字典中的键。字典将对象作为键。
注意:
应避免使用类型转换。所有这些(id)
都需要消失。如果编译器在这些行上发出警告,则可能表明存在一个不能通过类型转换修复的实际问题。
实例变量以小写字母命名。 id
是保留字,因此不应用作实例变量名。使用类似columnIdentifier
。