जाहिर है, संकलक NSSearchPathDirectory:0एक सरणी है, और निश्चित रूप से यह NSSearchPathDirectoryइसके बजाय प्रकार की उम्मीद करता है । निश्चित रूप से एक सहायक त्रुटि संदेश नहीं।
लेकिन कारणों के रूप में:
पहले, आप तर्क नामों और प्रकारों को भ्रमित कर रहे हैं। फ़ंक्शन परिभाषा पर एक नज़र डालें:
func NSSearchPathForDirectoriesInDomains(
directory: NSSearchPathDirectory,
domainMask: NSSearchPathDomainMask,
expandTilde: Bool) -> AnyObject[]!
directoryऔर domainMaskनाम हैं, आप प्रकारों का उपयोग कर रहे हैं, लेकिन आपको उन्हें कार्यों के लिए वैसे भी छोड़ देना चाहिए। उनका उपयोग मुख्य रूप से विधियों में किया जाता है।
- इसके अलावा, स्विफ्ट दृढ़ता से टाइप किया गया है, इसलिए आपको केवल 0. का उपयोग नहीं करना चाहिए। इसके बजाय एनम के मान का उपयोग करें।
- और अंत में, यह केवल एक पथ नहीं, बल्कि एक सरणी देता है।
ताकि हमें छोड़ दिया जाए (स्विफ्ट 2.0 के लिए अद्यतन):
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
और स्विफ्ट 3 के लिए:
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]