2014-11-06 3 views
8

मैं अभिव्यक्ति का मूल्यांकन करने के लिए एक शब्दकोश का उपयोग कर रहा हूं, जब अभिव्यक्ति में चर है और शब्दकोश वास्तव में एनएसईएक्सप्रेस द्वारा उपयोग किया जाता है, कुछ होता है और मुझे EXC_BAD_ACCESS प्राप्त करने का प्रयास करते समय EXC_BAD_ACCESS मिलता है शब्दकोश, यह केवल तब होता है जब एक आईफोन 6 में डीबगिंग, सिम्युलेटर में नहीं, बल्कि आईफोन 4 एस में नहीं।EXC_BAD_ACCESS मूल्यांकन के लिए इसका उपयोग करने के बाद स्विफ्ट शब्दकोश को अद्यतन करते समय NSExpression

let strExpression = "a+b+20" 
    let exp = NSExpression(format:strExpression) 
    self.dictionary = ["a":10.0, "b":15.0, "c":25.0] 
    let value:AnyObject = exp.expressionValueWithObject(self.dictionary, context: nil) 
    let doubleValue = value as Double 
    self.dictionary.updateValue(doubleValue, forKey: "c")  

वास्तव में कुछ अजीब है कि अगर मैं सिर्फ शब्दकोश बनाने के बाद इस लाइन को जोड़ने के लिए, तो यह ठीक woks है:

let newDic = self.dictionary  

मैं, आईओएस 8.1 का उपयोग कर हूँ। अग्रिम में धन्यवाद!

+1

देना या वर के साथ self.dictionary घोषित है? –

+2

एक कंपाइलर बग होने के लिए विश्वास किया। मैंने वही अनुभव किया है। Http://stackoverflow.com/questions/26809986/exc-bad-access-on-ios-8-1-with-dictionary – steventnorris

+0

धन्यवाद @ juanelomx !!! 'चलो' के साथ वही बग और हैक ने मुझे – Aznix

उत्तर

0

@bensarz टिप्पणी के साथ, मैंने सोचा कि अगर दूसरों ने टिप्पणी के बजाय वास्तविक उत्तर में प्रतिक्रिया डाली तो दूसरों के लिए उत्तर खोजना उपयोगी हो सकता है।

एक ऐसी ही पोस्ट पर @ LeeWhitney की प्रतिक्रिया के अनुसार:

एक संकलक बग की तरह लग रहा।

क्या आपने रिलीज और डीबग के बीच फिर से पुनर्निर्माण के बीच स्विच करने का प्रयास किया है? यदि डीबग काम करता है लेकिन रिलीज़ नहीं होता है तो यह एक कंपाइलर/ऑप्टिमाइज़र बग का संकेत हो सकता है।

क्या यह सिम्युलेटर में भी होता है?

आपका कोड आईओएस 8.1 पर एक्सकोड 6.1 के साथ मेरे लिए काम करता है।

समाधान: मुद्दा 'अनुकूलन स्तर' 'स्विफ्ट संकलक - कोड जनरेशन' के तहत बदल रहा द्वारा हल किया जा रहा है 'कोई नहीं' के लिए। यह मुद्दा 'सबसे तेज़' कंपाइलर अनुकूलन स्तर के साथ प्रतीत होता है।

इसके अलावा, कि चारों ओर एक काम मैं संकलक बदलने से पहले मूल पाया है:

आप एक लेट बयान शब्दकोश में मान निर्दिष्ट करने से पहले उपयोग करते हैं, वह इस मुद्दे को कम करने लगता है। अधिक जानकारी नीचे दिए गए लिंक पर पाया:

EXC_BAD_ACCESS on iOS 8.1 with Dictionary

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

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