aki*_*don 1 objective-c nsarray
我有一个包含可能不同类的对象的数组,例如:
NSArray *multiClassArray = @[@"foo", @42, @"bar"];
Run Code Online (Sandbox Code Playgroud)
我想得到一个新数组,其中包含multiClassArray其类的所有对象,比如说NSString.
有没有比循环每个项更优雅的方法multiClassArray,检查它的类,并适当地将它存储在一个新的数组中?
这可以使用NSArray实例方法完成:
- indexesOfObjectsPassingTest:- objectsAtIndexes:以下代码是如何创建包含原始数组的所有字符串对象的数组的示例.
NSArray *multiClassArray = @[@"foo", @42, @"bar"];
NSIndexSet *idxSetOfStrings = [multiClassArray indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
return [obj isKindOfClass:[NSString class]];
}];
NSArray *arrayOfStrings = [multiClassArray objectsAtIndexes:idxSetOfStrings];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1294 次 |
| 最近记录: |