3
在Python,我可以很容易地得到一個子陣這樣從NSArray獲取子數組的最優雅方式是什麼?
>> v1 = ['a', 'b', 'c', 'd']
>> v2 = v1[1:]
>> v2
['b', 'c', 'd']
我怎樣才能做到在Objective-C優雅的相同呢?
起初,我以爲這個方法將做的工作:
- (void)getObjects:(id[])aBuffer range:(NSRange)aRange
但它拷貝對象到一個緩衝單元。我需要將它們添加回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
那麼,有沒有更優雅的方式?或者除了通過objectEnumerator
迭代之外沒有別的辦法嗎?