2016-09-15 14 views
21

स्विफ्ट 3 में अपना कोड परिवर्तित करना मुझे एक अजीब समस्या मिली। अभी (15 सितंबर 2016) एक्सकोड 8 (सार्वजनिक संस्करण) बाहर है, और कोड को परिवर्तित करने के बाद, मेरी ऐप स्पष्ट रूप से कारण के बिना दुर्घटनाग्रस्त हो जाती है।Autolayout मुद्दा Xcode 8 [_SwiftValue nsli_superitem]

वहाँ कुछ ऑटो लेआउट साथ कुछ गड़बड़ है और लॉग की तरह कुछ का कहना है:

[_SwiftValue nsli_superitem]: unrecognized selector sent to instance 

मैं कैसे हल कर सकते हैं? धन्यवाद

उत्तर

37

बस अजीब लेकिन काम कर समाधान पता लगा:

के बजाय यह कर:

let views = ["view":aView] 
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "...", options:[], metrics: metrics, views: views)) 

शब्दकोश स्पष्ट रूप से घोषित करें:

let views: [String:UIView] = ["view":aView] 
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "...", options:[], metrics: metrics, views: views)) 

मुझे पता है, यह अजीब है, लेकिन यह काम करता है । चीयर्स

+9

इसे साझा करने के लिए धन्यवाद। मेरे लिए यह दृश्य को खोल रहा था, जो एक वैकल्पिक था। तो 'विचारों को देखने दें = ["देखें": aView!] ' –

+0

कम से कम आपका रूपांतरित हो गया। मेरा प्रोजेक्ट अपग्रेड सिर्फ मेरी सभी बाधाओं को पूरी तरह से अनदेखा करता है। परिवर्तनों को वापस कर दिया और पंक्ति में 3 बार पुनः प्रयास किया। मेरा क्लाइंट सिर्फ उन छोटे फीचर्स को प्राप्त करने से पहले अपने पूरे इंटरफेस को पूरी तरह से फिर से शुरू करने के लिए प्यार करने जा रहा है, जिन्हें वे अपडेट करना चाहते थे। – DiggyJohn

+0

धन्यवाद @ martn_st, यही मेरे लिए काम किया है। मेरी घोषणा '@IBOutlet कमजोर var aTableView: UITableView!' है, जिसे मैंने सोचा था कि यह पहले से ही अनचाहे था। मुझे स्विफ्ट 3 में लगता है, यह पर्याप्त नहीं है? – Bek

2

स्विफ्ट 3 में, जिस तरह से हम पूरी तरह से अनचाहे विकल्प के साथ काम करते हैं, बदल गया है। निम्नलिखित उदाहरण पर विचार: तो प्रकार [Int] अपेक्षा के अनुरूप की एक सरणी के बजाय

let optionalInt: Int! = 1 
let int = optionalInt 
let array = [int, 2] 
print(array) // prints: [Optional(1), Optional(2)] 

, अब हम [Int?] है, जो ऊपर रनटाइम त्रुटि का कारण बनता है की है।


pascalbros के वैकल्पिक हल स्पष्ट रूप से घोषित करने के लिए चर के प्रकार के मुद्दे को हल करती है, लेकिन वहाँ क्या होता है सुनिश्चित करने के लिए, मैं अप्रत्याशित रूप से संभव optionals जाँच करने के लिए एक सरणी या शब्दकोश में हो रही सलाह देते हैं और अपने अनुमानित प्रकार को बदलना।

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