Xcode 10 - छवि शाब्दिक अब उपलब्ध नहीं है


92

Xcode 10 रिलीज़ नोट: "Xcode 10 में स्विफ्ट छवि के साहित्यकारों के लिए कोड समापन हटा दिया गया है"

तो यह एक बग नहीं है कि मैं कोड में चित्र नहीं जोड़ सकता (और पुराने प्रोजेक्ट चला सकता हूं)। फिर हम कोड में अब से चित्र कैसे जोड़ते हैं क्योंकि टाइपिंग UIImageView(image:किसी भी png या jpeg को स्वीकार नहीं करेगा।

let cellImage: UIImageView = {
    let image = UIImageView(image: ???))

    return image
}()

सिस्टम: macOS Mojave
Xcode: Xcode 10 बीटा 4


UIImage(named: "myImage")के रूप में तु पुराने समय में (?)
अलादीनिन

ध्यान देने योग्य: छवि शाब्दिकों के लिए केवल कोड पूरा करना छोड़ दिया गया हैछवि शाब्दिक खुद को काम ठीक करने के लिए जारी XCode 10 पर स्विफ्ट 4.2 के साथ।
Iofia

@isofia नहीं, क्योंकि वे एक नहीं कर सकते।
मैट

3
यह दुर्भाग्यपूर्ण है, छवि शाब्दिक समापन एक अच्छी विशेषता थी
एरिक आर्मस्ट्रांग

जवाबों:


118

में Xcode 10 और स्विफ्ट 4.2 , केवल कोड पूरा होने के समारोह (या स्वत: पूर्ण) Xcode IDE के पुराने तरीके के लिए बंद कर दिया गया। यहाँ नया तरीका है:

बस टाइप करें image literalऔर यह डिफ़ॉल्ट आइकन के साथ पूरा होगा।

यहां छवि विवरण दर्ज करें

 

इस आइकन पर डबल क्लिक करें और यह मीडिया लाइब्रेरी को दाईं ओर खोलेगा।

यहां छवि विवरण दर्ज करें

 

बस अपनी छवि चुनें और यह पहले की तरह काम करे!

यहां छवि विवरण दर्ज करें


61
इस तरह नाम से एक छवि ढूंढना असंभव है। और मेरे डिजाइनर ने मुझे सभी संपत्ति सफेद-ऑन-पारदर्शी पीएनजी के रूप में दी, इसलिए सभी थंबनेल एक यादृच्छिक क्रम में शुद्ध सफेद के रूप में प्रदान किए जाते हैं ... जो छवि को चुनना है वह मिशन असंभव है। -_-
C 27ur

2
हाय Coeur, कृपया, अपने डिजाइन को सभी छवि को धूसर पर रखने के लिए कहें, फिर आप अपनी संपत्ति को टेम्पलेट में बदलते हैं, और फिर आप इसे स्टोरीबोर्ड या कोड पर टिंट कर सकते हैं :)
डैनियल एरेन्ट्स लवरेड

यहाँ सामान्य है, डबल क्लिक करें सूची खोलें
डैनियल एरेन्ट्स लोवरे

@ C @ur यह असंभव नहीं है लेकिन यह कठिन है, अगर आप प्रोजेक्ट से गुजरते हैं, तो #imageLiteral सिर्फ टोकन स्ट्रिंग का ग्राफिक प्रतिनिधित्व करता है, जो इसे खोजने के साथ खोजने योग्य बनाता है (आपके वर्तमान फ़ोल्डर में #imageLiteral) :)
बुचर

@DominikBucher दो साल हो गए हैं और अब मैं Xcode 12 का उपयोग कर रहा हूं, इसलिए प्रवाह Xcode के शीर्ष दाईं ओर + + Lया + बटन का उपयोग करना है ।
कूर

98

मीडिया लाइब्रेरी टैब खोलने के लिए शॉर्टकट मिला:

+ +M

इस बिंदु पर आधिकारिक दस्तावेज Xcode 10 बीटा में कुछ उपयोग के मामलों को कवर नहीं करता है, इसलिए मैं मीडिया के हिस्से को पुरानी स्थिति में स्थानांतरित करने का एक तरीका नहीं ढूंढ पा रहा हूं।


7
इतना बुरा मैं एक आइटम सम्मिलित करने के लिए दर्ज नहीं कर सकता। मुझे आइटम कर्सर को कोड में खींचने के लिए माउस का उपयोग करना होगा।
fl034

4
मीडिया लाइब्रेरी एक उचित छवि शाब्दिक सम्मिलित नहीं करता है, हालांकि ... यह 3 छवि शाब्दिकों में 3 अलग-अलग छवि संकल्पों का उल्लेख करता है।
यहोशू सुलिवन

यदि आप पहले दो को हटाते हैं, तो यह अभी भी काम करता है। इतना गन्दा, Apple।
Cifilter

51

आप अपने कोड में छवि शाब्दिक जोड़ने के लिए Xcode में मीडिया लाइब्रेरी का उपयोग कर सकते हैं:

एक्सकोड मीडिया लाइब्रेरी दिखाएं

और फिर पुस्तकालय से छवि चुनें और उसे अपने कोड में खींचें और छोड़ें

पुस्तकालय से छवि चुनें

यह छवि को शाब्दिक बनाएगा


धन्यवाद! दूसरों के लिए: पहले स्क्रीनशॉट में, LEFTMOST आइकन {}
xaphod

3
दिलचस्प रूप से, इसने पीडीएफ़ संसाधनों का उपयोग करते समय मेरे लिए अमान्य छवि शाब्दिक निर्माण किया, जिसके परिणामस्वरूप एक रनटाइम क्रैश हुआ - जीएम बिल्ड में।
डेविड गैंस्टर

15
यह प्रत्येक के लिए एक शाब्दिक बनाता है @1x, @2xऔर @3xसंपत्ति और इस प्रकार संकलन नहीं है
Zappel

2
गंभीरता से यह कैसे काम करने वाला है? क्या तीनों प्रस्तावों के एक प्रतिनिधित्व को खींचने और छोड़ने का कोई तरीका नहीं है? ऐसा लगता है जैसे Apple द्वारा एक बहुत बड़ा निरीक्षण।
अंबिक

28

स्विफ्ट इमेज लिटरल्स को बनाने वाली विरासत कोड वाले दूसरों के लाभ के लिए , छवि शाब्दिक फ़ंक्शन का कोड और सिंटैक्स स्वयं अभी भी मान्य है और स्विफ्ट 4.2 के साथ Xcode 10 में पूरी तरह से ठीक है।

मौजूदा कोड को रोलबैक या रिफलेक्टर करने की कोई आवश्यकता नहीं है जो इन छवि को दर्शाता है, और उन्हें अभी भी निम्नानुसार इस्तेमाल किया जा सकता है:

imageView.image = #imageLiteral(resourceName: imageNameString)

Xcode IDE का केवल कोड पूरा होने का कार्य (या स्वतः पूर्ण) बंद कर दिया गया है।


अपडेट करें

पिछले और वर्तमान संस्करणों या Xcode / Swift में छवि-शाब्दिक प्रतिनिधित्व में अंतर:

image = #imageLiteral(resourceName: "flower.jpg")

छवि = # जीवनलाल (संसाधन नाम: "फूल.जीपीजी")

जैसा कि अर्क चित्रण करता है, छवि शाब्दिक को उनकी वास्तविक छवि के थंबनेल के साथ लाइन में दर्शाया गया था। हालाँकि, अब, इसकी जगह केवल जेनेरिक आइकन का उपयोग किया जाता है। संभवतः, यह IDE पर बोझ को कम करने की ओर जाता है, इन-लाइन थंबनेल को संभालने और प्रदर्शित करने के ओवरहेड्स को समाप्त करके।


2
क्या हम जानते हैं कि Apple ने इसे क्यों निकाला? क्या भविष्य में छवि के शाब्दिक मूल्यह्रास होने वाले हैं?
ब्रायन हिल

@BryanHill कोई स्पष्टीकरण नहीं दिया गया है, जो मुझे पता है। लेकिन मैंने अपने उत्तर को, सबसे अच्छे अनुमान के साथ, अपडेट किया है।
सोफिया

मैंने चिह्नित किया है कि जब आप छवि का सामान्य आइकन देखेंगे। तब आपका एप्लिकेशन उस स्थान पर क्रैश हो जाएगा।
बादल शाह

किसी तरह मैं अचानक थंबनेल इनलाइन प्रदर्शित करता था जब मैंने इसे (Xcode 10.0 (10A255)) वाली लाइन का चयन किया।
fl034

2
मुझे लगता है कि यह सिर्फ एक बग है
रीड एलिस

18

TIP: कोड में शाब्दिक छवि जोड़ने के बाद तीन प्रस्तावों को ठीक करना।
1. एक और निकालें, केवल एक छवि रखें
2. शाब्दिक छवि के साथ अपना लाइन कोड टिप्पणी करें, फिर कोड में शाब्दिक छवि दिखाई देगी, जैसे: #imageLiteral(resourceName: "image@2x.png"
3. resourceNameमूल्य में, निकालें @2xऔर फ़ाइल एक्सटेंशन, जैसे .png, केवल छवि का नाम रखें: #imageLiteral(resourceName: "image")
4. Uncomment! छवि कोड में दिखाई जाएगी।


4
धन्यवाद। क्या एक उग्र डंपस्टर आग XCode छवि शाब्दिक मो पर हैं
xaphod

1
(मुझे बस पसंद है raging dumpster fire;))।
क्रिस प्रिंस

धन्यवाद, यह वास्तव image nameमें पिकर से चयन करने के बजाय (लेकिन फिर भी इसे एक छवि शाब्दिक रूप में उपयोग करने में सक्षम) होने का एक अच्छा तरीका है ।
एंजेलिन

7

Xcode 11 में, मीडिया लाइब्रेरी अब व्यू> शो लाइब्रेरी (SHIFT + CMD + L) के अंतर्गत है।


6

अगर कोई Xcode 11 का उपयोग कर रहा है तो आप नीचे दिए गए विकल्प का उपयोग करके सभी मीडिया पा सकते हैं:

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें


लेकिन यह केवल छवि के लिए पथ सम्मिलित करता है?
Ixx

हां, इसका इंसर्ट केवल पथ ही है लेकिन यह वह तरीका है जिससे आप सभी चित्र शाब्दिक
गुरु


0

मैं Xcode 10 बीटा 4 का उपयोग कर रहा हूँ और मुझे भी यही समस्या है! एक छवि को पारित करने के लिए पुराने तरीके का उपयोग करके हल किया गया

PizzaModel(
            nome: "Marinara",
            ingredienti: "Pomodoro, Aglio",
            calorie: "729",
            img: UIImage(named: "marinara")!
)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.