我有一个字符串数组,其中包含真正的类`_NSCFConstantString'和
[myArray valueForKeyPath:@"@distinctUnionOfObjects.self"];
按预期工作。但是对于具有实际类`_NSCFString'的字符串数组的情况。相同的keypath会产生错误:
' [< __ NSCFString 0x14d9e4d0> valueForUndefinedKey:]:这个类不是 键值distinctUnionOfObjects的键值编码兼容。'
如果我没有直接构建我的数组,如何使用此密钥路径?为什么会发生这种情况?
完整代码:
// demo array
NSArray * a = [NSArray arrayWithObjects:@"one", @"one" , @"two", nil];
// remoteDictionariesArray - array of dictionaries from webservice obtained with AFNetworking : @[@{@"name":@"one", @"name":@"one", @"name":@"two"}]
NSArray *namesArray = [remoteDictionariesArray valueForKeyPath:@"Name"];
// works fine
NSArray *unique = [a valueForKeyPath:@"@distinctUnionOfObjects.self"];
// throw exception
NSArray *unique1 = [namesArray valueForKeyPath:@"@distinctUnionOfObjects.self"];
更新
po remoteDictionariesArray
<__NSCFArray 0x14ea0990>(
{
Name = "Name";
ProductId = "d671fd2f-25cc-4b39-acea-7d2d2acb4f80";
},
{
Name = "Name";
ProductId = "49c691c7-9b38-488b-83c6-ba2d4a9a5e4c";
}
)
po namesArray
<__NSArrayI 0x14eab4d0>(
Name,
Name
)
NSArrayI元素是(__ NSCFString *)