2015-09-26 49 views
1

更新到Swift 2.0後,當調用NSFielManager時,它會導致以下錯誤。你能告訴我什麼是問題嗎?調用可以拋出,但錯誤不能被拋出屬性初始化程序

let cachesDirectoryURL = NSFileManager().URLForDirectory(.CachesDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true) 

錯誤

「呼叫可以拋出,但錯誤不能拋棄的屬性初始化的」

+0

*搜索* for error messages - http://stackoverflow.com/questions/30776458/call-can-throw-but-errors-can-not-be-thrown-out-of-a-global-變量初始化,http://stackoverflow.com/questions/ 30786877/avaudioplayer-no-longer-working-in-swift-2-0-xcode-7-beta這段代碼沒有什麼特別的。 – user2864740

回答

0

這意味着我們必須抓住可能拋出的錯誤,應該會出現問題:

do 
{ 
    let cachesDirectoryURL = try NSFileManager().URLForDirectory(.CachesDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true) 
} 
catch let error as NSError 
{ 
    print(error.localizedDescription) 
} 
+0

這仍然'拋出錯誤'*屬性*初始值設定項 - 否則在上下文無效。在這種情況下,'let'是指成員,如消息所示,不是本地綁定。 – user2864740

+0

它必須是1)財產,並; 2)在Swift 2下重現OP的行爲。此代碼在* property *聲明的上下文中沒有意義。 – user2864740

+1

解決了錯誤!謝謝! – lalala