Ant*_*ong 3 cocoa cocoa-touch objective-c nsarray
在Python中,我可以像这样容易得到一个子阵列
>> v1 = ['a', 'b', 'c', 'd']
>> v2 = v1[1:]
>> v2
['b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)
如何优雅地在Objective-C中完成相同的操作?
起初我虽然这种方法可以完成这项工作:
- (void)getObjects:(id[])aBuffer range:(NSRange)aRange
Run Code Online (Sandbox Code Playgroud)
但它将对象复制到缓冲区位置.我需要将它们添加回另一个实例NSArray.另外,编译器抱怨保留/释放属性,我真的不太愿意处理.
id* objs;
NSRange rng = NSMakeRange(1, [v1 count] - 1);
[v1 getObjects:objs range:rng]; # Sending '__strong id *'
# to parameter of type '__unsafe_unretained id *'
# changes retain/release properties of pointer
Run Code Online (Sandbox Code Playgroud)
那么,还有更优雅的方式吗?或者除了迭代之外别无他法objectEnumerator?
Jas*_*oco 10
NSArray* v1 = @[@"a",@"b",@"c",@"d"];
NSRange rng = NSMakeRange(1,[v1 count]-1);
NSArray* v2 = [v1 subarrayWithRange:rng];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2359 次 |
| 最近记录: |