2017-07-05 22 views

答えて

1

subarrayメソッドを使用できます。

let array = NSArray(array: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) 

let left = array.subarray(with: NSMakeRange(0, 5)) 
let right = array.subarray(with: NSMakeRange(5, 5)) 
+0

あなたはすぐに私の解決策を提供することができます3 – technoAndroid

+0

範囲を超えて範囲を取得していますit.if derはインデックスがありません – technoAndroid

+0

私の配列の範囲は772ですが、インデックス範囲{392,441} [0 .. 772] '.. – technoAndroid

1

これはもっと甘いですか?

let integerArray = [1,2,3,4,5,6,7,8,9,10] 
let stringArray = ["a", "b", "c", "d", "e", "f"] 
let anyObjectArray: [Any] = ["a", 1, "b", 2, "c", 3] 

extension Array { 
    func chunks(_ chunkSize: Int) -> [[Element]] { 
     return stride(from: 0, to: self.count, by: chunkSize).map { 
      Array(self[$0..<Swift.min($0 + chunkSize, self.count)]) 
     } 
    } 
} 

integerArray.chunks(2) //[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]] 
stringArray.chunks(3) //[["a", "b", "c"], ["d", "e", "f"]] 
anyObjectArray.chunks(2) //[["a", 1], ["b", 2], ["c", 3]] 

スウィフトArrayNSMutableArrayを変換するには:

let nsarray = NSMutableArray(array: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) 
if let swiftArray = nsarray as NSArray as? [Int] { 
    swiftArray.chunks(2) //[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]] 
} 

あなたたいが、その後、NSArrayを使用することを主張する場合:参照して質問を更新してください `NSMutableArray`

let nsarray = NSMutableArray(array: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) 

extension NSArray { 
    func chunks(_ chunkSize: Int) -> [[Element]] { 
     return stride(from: 0, to: self.count, by: chunkSize).map { 
      self.subarray(with: NSRange(location: $0, length: Swift.min(chunkSize, self.count - $0))) 
     } 
    } 
} 

nsarray.chunks(3) //[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]] 
+0

NSPはnsmutablearrayまたはnsarray用ではない整数配列用 – technoAndroid

+0

@technoAndroid NSMutableArrayをSwift Arrayに変換することができます...私は自分の答えを更新しました。 – brianLikeApple

+0

助けてくれてありがとうbrianlikeAppleしかし、私はそれを使用している特定の目的のためにnsmutablearray自体が必要です – technoAndroid

関連する問題