Objective c 正在从不兼容的指针类型传递参数1

Objective c 正在从不兼容的指针类型传递参数1,objective-c,nsdictionary,Objective C,Nsdictionary,为什么这个代码…: NSDictionary *testDictionary = [NSDictionary dictionaryWithObjectsAndKeys:kABOtherLabel, @"other", kABWorkLabel, @"work", nil]; // There are 9 more key-value pairs that i've omitted here. 抛出此警告: 警告:从不兼容的指针类型传递'dictionaryWithObjectsAndKeys'的

为什么这个代码…:

NSDictionary *testDictionary = [NSDictionary dictionaryWithObjectsAndKeys:kABOtherLabel, @"other", kABWorkLabel, @"work", nil];
// There are 9 more key-value pairs that i've omitted here.
抛出此警告:
警告:从不兼容的指针类型传递'dictionaryWithObjectsAndKeys'的参数1


顺便说一句,代码按预期工作,但我不喜欢将警告保留为未删除。我假设我在字典中存储一个常量,这与此不一样。那么,我可以把它存放在哪里呢?我应该把
(void*)
放在每个常量之前吗?

我相信
kABOtherLabel
是一个常量整数,而不是一个对象。如果您想将其添加为对象,请使用与
[NSNumber numberWithInteger:kABOtherLabel]
行一起的内容(第二个值对象也是如此)

我相信
kABOtherLabel
是一个常量整数,而不是一个对象。如果您想将其添加为一个对象,请将其与
[NSNumber numberWithInteger:kABOtherLabel]
行一起使用(第二个值对象也是如此)

在iPhone上,
kABOtherLabel
是一个
CFStringRef
而不是一个
NSString*
。但是,这两个是免费桥接的,因此您可以将其强制转换为
NSString*

NSDictionary *testDictionary = [NSDictionary dictionaryWithObjectsAndKeys:(NSString *)kABOtherLabel, @"other", (NSString *)kABWorkLabel, @"work", nil];

(此外,在此调用中,您的键和值可能会颠倒,除非您希望文本字符串是键(对象优先))。

在iPhone上,
kABOtherLabel
CFStringRef
而不是
NSString*
。但是,这两个是免费桥接的,因此您可以将其强制转换为
NSString*

NSDictionary *testDictionary = [NSDictionary dictionaryWithObjectsAndKeys:(NSString *)kABOtherLabel, @"other", (NSString *)kABWorkLabel, @"work", nil];

(此外,在此调用中,您的键和值可能会被反转,除非您希望文字字符串是键(对象排在第一位))。

我明白了,所以它需要一个对象。好的,如果您打印
kABOtherLabel
,您会得到一个值
$_CFTypeRef
。但听起来你是对的,它不是一个对象,这就是
NSDictionary
所要寻找的。我想知道存储字符串>常量对列表的正确方法是什么?关于打印,您可以使用%d占位符打印,该占位符将显示该常量的整数表示形式。除此之外,你可以在老式结构中存储字符串>常量对。+1哦,我喜欢这样。也许我会制作一个字符串>整数对的字典。我明白了,所以它需要一个对象。好的,如果您打印
kABOtherLabel
,您会得到一个值
$_CFTypeRef
。但听起来你是对的,它不是一个对象,这就是
NSDictionary
所要寻找的。我想知道存储字符串>常量对列表的正确方法是什么?关于打印,您可以使用%d占位符打印,该占位符将显示该常量的整数表示形式。除此之外,你可以在老式结构中存储字符串>常量对。+1哦,我喜欢这样。也许我会编一本字符串>整数对的字典。+1谢谢。好计划。我注意到,我只收到与第一个对象相关的警告。对其他对象进行类型转换似乎没有必要(因为它至少与警告有关)。我确实希望我的文字字符串成为键。我花了一分钟才弄清事情的顺序。好计划。我注意到,我只收到与第一个对象相关的警告。对其他对象进行类型转换似乎没有必要(因为它至少与警告有关)。我确实希望我的文字字符串成为键。我花了一分钟才发现事物的顺序。