nan*_*ome 5 cocoa core-data objective-c nsarray
我有一个NSArrayController和我当我得到selectedObjects并创建一个NSString,其值valueForKey:@"Name"返回
(
"This is still a work in progress "
)
Run Code Online (Sandbox Code Playgroud)
而我想要的只是文字中""我将如何得到它?这也是我的代码:
NSArray *arrayWithSelectedObjects = [[NSArray alloc] initWithArray:[arrayController selectedObjects]];
NSString *nameFromArray = [NSString stringWithFormat:@"%@", [arrayWithSelectedObjects valueForKey:@"Name"]];
NSLog(@"%@", nameFromArray);
Run Code Online (Sandbox Code Playgroud)
编辑:我在数组中也有其他字符串
dre*_*lax 16
当您调用valueForKey:数组时,它会调用数组中valueForKey:包含的每个元素,并在新数组中返回这些值,替换NSNull任何nil值.也没有必要selectedObjects从控制器复制数组,因为它无论如何都是不可变的.
如果阵列控制器的所选对象中有多个对象,并且您希望查看所选对象中所有项的名称键的值,则只需执行以下操作:
NSArray *names = [[arrayController selectedObjects] valueForKey:@"name"];
for (id name in names)
NSLog (@"%@", name);
Run Code Online (Sandbox Code Playgroud)
当然,如果您这样做,您可以立即打印出来:
NSLog (@"%@", [[arrayController selectedObjects] valueForKey:@"name"]);
Run Code Online (Sandbox Code Playgroud)
如果selectedObjects数组中只有一个元素,并且您调用valueForKey:它,它仍将返回一个数组,但它只包含数组中单个元素的键值.你可以参考这个lastObject.
NSString *theName = [[[arrayController selectedObjects] valueForKey:@"name"] lastObject];
NSLog (@"%@", theName);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20300 次 |
| 最近记录: |