2015-08-20 7 views
14

मैं त्रुटि'stringByAppendingPathComponent' अनुपलब्ध

'stringByAppendingPathComponent' is unavailable: Use 'stringByAppendingPathComponent' on NSString instead. 

हो रही है, लेकिन यह अब मेरे लिए काम नहीं करता है एक्सकोड 7 बीटा 5.

This thread ऐप्पल डेवलपर फ़ोरम पर विस्तार का उपयोग करने या NSString पर प्रत्यक्ष कास्ट करने का सुझाव था। लेकिन यह एक NSString

let databasePath = documentsFolder.stringByAppendingPathComponent("test.sqlite" as NSString) 

में बदलने का मुझे क्या करना है, तो फिर मैं त्रुटि

'NSString' is not implicitly convertible to 'String'... 

हो और यह मुझे जो हमें वापस लाता है "ठीक-यह" करने के लिए as String डालने से विकल्प देता है मूल त्रुटि

यह stringByAppendingPathExtension के लिए भी होता है।

मैं क्या करूँ?

उत्तर

26

आप स्ट्रिंग पथ की बजाय एक यूआरएल बना सकते हैं।

let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first 
let fileURL = documentsURL?.appendingPathComponent("test.sqlite") 

आप पूरी तरह पथ की जरूरत है, तो आप इसे इस तरह प्राप्त कर सकते हैं:

guard let path = fileURL?.path else { 
    return 
} 

print(path) // path will exist at this point 

thread आप का उल्लेख एप्पल जानबूझकर URL का उपयोग करने के बजाय की ओर लोगों का मार्गदर्शन हो सकता है कि में कुछ चर्चा हुई थी स्ट्रिंग पथ

यह भी देखें:

11

आप उपयोग कर सकते हैं:

let dbPath = (documentsFolder as NSString).stringByAppendingPathComponent("db.sqlite") 
+2

हालांकि यह काम कर रहा है यह एनएसएसटींग की बजाय स्विफ्ट स्ट्रिंग में इस विधि को देखना बहुत अच्छा होगा ... – Ben

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