我有一個NSArray
在我的項目中有近12個元素。我想將這個數組分成2個數組。我想要第一個數組中的前3個元素和第二個NSArray
中的其餘元素。拆分NSArray到一個固定的大小和其餘
0
A
回答
1
基於the answer of Alex Reynolds:
你應該具有的3的長度的範圍內,並與它的陣列的第一半,然後修改它的位置和長度,並創建所述陣列的第二個一半。
NSArray *firstThreeArray;
NSArray *otherArray;
NSRange threeRange;
threeRange.location = 0;
threeRange.length = 3;
firstThreeArray = [wholeArray subarrayWithRange:threeRange];
threeRange.location = threeRange.length;
threeRange.length = [wholeArray count] - threeRange.length;
otherArray = [wholeArray subarrayWithRange:threeRange];
0
由於NSArray
類別:
@implementation NSArray (NSArray_Slicing)
- (NSArray *)subarraysFromIndex:(int)index {
return @[[self sliceToIndex:index], [self sliceFromIndex:index]];
}
- (NSArray *)sliceFromIndex:(int)index {
NSMutableArray*mutArray = [self mutableCopy];
NSRange range = NSMakeRange(index, self.count - index);
return [mutArray subarrayWithRange:range];
}
- (NSArray *)sliceToIndex:(int)index {
NSMutableArray*mutArray = [self mutableCopy];
NSRange range = NSMakeRange(0, index);
return [mutArray subarrayWithRange:range];
}
@end
然後調用它:
NSArray *array = @[@1, @2, @3, @4, @5, @6, @7, @8, @9, @10, @11, @12];
NSLog(@"First three: %@", [array sliceToIndex:3]);
NSLog(@"Remaining: %@", [array sliceFromIndex:3]);
NSLog(@"Sliced: %@", [array subarraysFromIndex:3]);
NSLog(@"Original: %@", array);
+0
無需製作額外的副本。 'subarrayWithRange:'已經創建並返回一個新的數組。 –
+1
對於演示目的而言不是必需的,但我想爲這些方法添加一些範圍檢查以避免異常。 –
相關問題
- 1. 如何根據固定大小拆分PL/SQL中的文件
- 2. HTML部分和div固定大小
- 3. 較小NSArrays組拆分NSArray的尋呼
- 4. 分割列表到給定的相等大小X和其餘列表不應小於大小Y
- 5. 兩個div,一個固定寬度,其他,其餘
- 6. 收藏是一個固定的大小
- 7. 如何使一個固定大小的div和其他div佔據所有剩餘的空間?
- 8. 拆分固定寬度的一行到多個行中SSIS
- 9. 註釋點偏移軸的大小的一個固定分數
- 10. 固定大小
- 11. ImageView是一個固定的大小,不管圖像大小
- 12. NSArray的大小
- 13. 兩個面板佈局(第一面板具有固定的大小,第二個有剩餘大小)
- 14. 即使分發固定大小的div
- 15. 如何初始化一個arrayList爲固定大小並將其分配給零
- 16. 拆分大集合到較小的
- 17. 創建的int數組,其大小是基於一個NSArray
- 18. Java:從INT的其餘部分拆分最後一位數
- 19. QSplitter具有一個固定大小的小部件和一個可變大小的小部件?
- 20. 安卓:ImageButton的一個動態的大小和位置固定
- 21. CSS:2個DIV,一個需要一個固定的大小,另一個填充剩餘的空間
- 22. 固定大小的陣列不固定
- 23. 推UIViewController到另一個UIViewController具有固定的自由大小
- 24. reinterpret_cast結構到一個固定大小的數組
- 25. 父母形式的固定大小和非固定大小形式vb.net
- 26. 固定的div到其他的div改變窗口大小
- 27. 固定大小柱
- 28. css,固定大小
- 29. 數組大小和字符串拆分
- 30. 固定大小的矩陣和也許
什麼如果,如果我的數組有元素的n個我怎樣才能界定的範圍第二個數組 –
如果數組有多於3個元素,則它已適用於每個數組。 – the4kman
它完美的工作 –