2015-02-13 9 views
43

मुझे कंसोल में po के साथ यह समस्या है जहां एक फ़ंक्शन आउटपुट करने की कोशिश कर रहा है, लेकिन एक चर या स्थिर' टी।`po` देता है 'त्रुटि: <EXPR>: 1: 1: त्रुटि: अनसुलझा पहचानकर्ता का उपयोग

first result is for <code>po bar.boy()</code>, second says <code>unresolved</code>

आप यहाँ देख सकते हैं, हालांकि आप लगता है कि var/देना bar.boy() की सामग्री रखती है, स्विफ्ट किसी भी तरह यह नहीं मिल सकता है ...

उत्तर

43

तो यह वहाँ शायद अतीत कि जब आप एक स्विफ्ट फ़ाइल यह जोड़ना होगा जोड़ रहे थे/एक ब्रिजिंग हैडर पूछने में एक बग था पता चला है, लेकिन यह अपनी परियोजना

SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 

है कि लाइन जोड़ने नहीं होता है जो आप चाहते का मतलब इस राज्य में रहें

SWIFT_OPTIMIZATION_LEVEL fastest

परिणामस्वरूप error: <EXPR>:1:1: error: use of unresolved identifier!

मुझे केवल यह पता चल सकता था क्योंकि मैंने अपनी परियोजना में फाइलों के चारों ओर स्थानांतरित किया था और जब मैंने प्रोजेक्ट में ओबीजेसी फाइलें जोड़ दीं, तो उसने मुझे ब्रिजिंग हेडर के बारे में पूछा (हालांकि मेरे पास पहले से ही एक था!) ​​और सौभाग्य से SWIFT_OPTIMIZATION_LEVEL जोड़ा गया। कोई यह मान सकता है कि डिफ़ॉल्ट मान fastest पर विचार करने के लिए यह एक बग है, लेकिन फिर मुझे लगता है कि यह अतीत में केवल एक बग था और अब तय हो गया है।

फिर भी, मैंने अभी तय किया है कि यह रिलीज बिल्ड में none जोड़ने पर दूसरी तरफ एक बग हो सकता है। मैं अभी इसका परीक्षण नहीं कर सकता क्योंकि इसका परीक्षण करने के लिए मेरे पास केवल Debug बिल्ड था। मैं इसे एक अभ्यास के रूप में छोड़ दूंगा :) ऐप्पल के इंजीनियरों के लिए।

+1

तो समस्या वास्तव में सभी के बाद एक अवांछित अनुकूलन के कारण हुई थी;) ^^ – AliSoftware

+30

मुझे अभी भी त्रुटियां मिलती हैं, यहां तक ​​कि थीस सेटिंग्स के साथ टकराव करने के बाद भी:/ – Loegic

+7

धन्यवाद। हालांकि, मुझे यह त्रुटि Xcode 8.0.0 में मिली है। अनुकूलन -ऑनोन पर सेट है। – FreeNickname

2

मुझे यकीन है कि बग की वजह से है इस तथ्य के लिए कि foo संकलन के दौरान अनुकूलित किया गया है और यह प्रतीक अब संकलित कोड में मौजूद नहीं है (भले ही इसे डीबग में नहीं होना चाहिए और यह अभी भी एक एलएलडीबी बग है)

शायद यदि आप कुछ उपयोग जोड़ते हैं foo अगली पंक्तियों में (यहां तक ​​कि एक println) इसका प्रतीक होगा उम्मीद है कि आईआर में रखा जाना है और आप के लिए po foo

में सक्षम हो जाएगा (मैं मानता हूँ कि है कि अभी भी एक बग है लेकिन कम से कम अगर यह काम करता है आप एक समाधान और स्पष्टीकरण के कुछ समझ में होगा)

+0

शर्त के लिए धन्यवाद, लेकिन नहीं, यह समस्या नहीं है। मुझे यकीन है कि यह मेरी परियोजना के साथ कुछ है क्योंकि एक और ऐप में एक ही कोड सही ढंग से व्यवहार करता है। –

5

मैं स्विफ्ट संकलक करने के लिए "-O"

SWIFT_OPTIMIZATION_LEVEL = "-O"; 

सेट और इसे वापस सेट "-Onone" करने के लिए।

SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 

फिर यह काम करता है।

+1

काम करता है यह –

+0

मेरे मामले में काम नहीं करता है –

3

सेट करने के बाद निश्चित:

Optimization Level = None[-Onone]तहत स्विफ्ट संकलक - कोड जनरेशन

ध्यान दें कि नीचे एप्पल LLVM 8 Optimization Level की स्थापना।0 - कोड जनरेशन का कोई प्रभाव नहीं है

0

यदि आपकी परियोजना स्विफ्ट का उपयोग कर रही है, तो परियोजना/लक्ष्य कॉन्फ़िगरेशन में दो अलग-अलग "अनुकूलन स्तर" सेटिंग्स हैं। यह न केवल "SWIFT_OPTIMIZATION_LEVEL" है। इस लिंक को जांचें: https://stackoverflow.com/a/32984193/2060180

मैं इसे किसी के लिए उपयोगी होने पर यहां छोड़ दूंगा।

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