Mos*_*she 12 javascript porting objective-c
什么是JS的map()功能的Objective-C等价物?我会使用NSFastEnumeration并自己应用该功能吗?
mip*_*adi 36
如果您使用NSArray的enumerateObjectsUsingBlock:是OS X 10.6或iOS 4,则可以使用:
NSMutableArray *mapped = [NSMutableArray arrayWithCapacity:[array count]];
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
id mapObj = DoSomethingToObject(obj);
[mapped addObject:mapObj];
}];
Run Code Online (Sandbox Code Playgroud)
(无耻的,但相关的插件:我有一个库为OS X和iOS,增加了地图和其他类似的功能NSArray和NSSet.)
Dav*_*ong 12
这取决于.如果你有一个对象数组,并且这些对象有一个URL属性(例如),那么你可以这样做:
NSArray * urls = [myArray valueForKey:@"URL"];
Run Code Online (Sandbox Code Playgroud)
同样,如果您可以通过一条带有0或1个参数的消息触发相关对象的行为,则可以执行以下操作:
[myArray makeObjectsPerformSelector:@selector(doFoo)];
//or:
[myArray makeObjectsPerformSelector:@selector(doFooWithBar:) withObject:aBar];
Run Code Online (Sandbox Code Playgroud)
除此之外,你必须自己迭代对象.你可以使用for()循环,for(in)循环或类似的东西等-enumerateObjectsUsingBlock:.
| 归档时间: |
|
| 查看次数: |
13218 次 |
| 最近记录: |