2014-09-17 3 views
6

को NSArray बदलें। यह कोड तेजी से कैसा दिखता है?मैं कन्वर्ट एक <code>self.assets</code><code>NSArray</code><code>NSMutableArray</code> करने और <code>picker.selectedAssets</code> जो एक <code>NSMutableArray</code> है में जोड़ने के लिए कोशिश कर रहा हूँ NSMutableArray स्विफ्ट

ऑब्जेक्टिव-सी कोड

picker.selectedAssets = [NSMutableArray arrayWithArray:self.assets]; 
+0

दस्तावेज़ों को देखने के लिए परेशान किए बिना, मैं कल्पना करें 'एनएसएमयूटेबलएरे (self.assets)' और/या 'NSMutableArray.arrayWithArray (self.assets) 'यह करेगा। – Kevin

उत्तर

24
स्विफ्ट 3 के साथ

, NSMutableArray एक प्रारंभकर्ता init(array:) कि यह NSArray से विरासत है। init(array:) निम्नलिखित घोषणा की है:

convenience init(array anArray: NSArray) 

Initializes a newly allocated array by placing in it the objects contained in a given array.


इसलिए, निम्नलिखित खेल का मैदान कोड ठीक काम करता है:

import Foundation 

let nsArray = [12, 14, 16] as NSArray 
var nsMutableArray = NSMutableArray(array: nsArray) 
print(nsMutableArray) 

/* 
prints: 
(
    12, 
    14, 
    16 
) 
*/ 
+1

imagePicker.selectedAssets = NSMutableArray (सरणी: self.assets!) रिटर्न: घातक त्रुटि: वैकल्पिक मूल्य –

+0

अनचाहे करते समय अप्रत्याशित रूप से पाया गया शून्य, आपकी टिप्पणी पढ़कर, मुझे लगता है कि 'self.assets' वास्तव में 'NSArray प्रकार' है? । यदि ऐसा है, तो आपको इसे अपने एनएसएमयूटेबलएरे को सौंपने से पहले एक वैकल्पिक बाध्यकारी करना चाहिए। –

+0

वैकल्पिक बाध्यकारी मैं समझा सकता हूं? –

3

आप, तेज में एक ही बात कर सकते हैं बस वाक्य रचना थोड़ा संशोधित :

var arr = NSArray() 
var mutableArr = NSMutableArray(array: arr) 
+0

क्या यह 'एआरआर' होना चाहिए? – mc01

+0

इसे भी दिया जा सकता है। चूंकि दोनों सरणी केवल स्निपेट में प्रारंभ की जाती हैं, इसलिए वे दोनों का उपयोग कर सकते हैं। यह इस बात पर निर्भर करता है कि आप उनका उपयोग कैसे करते हैं – connor

संबंधित मुद्दे