2016-10-02 5 views
4

スウィフト2では、私は問題なく、以下のコードのようsomefile.txtからデータを読み込むことができます:Swift 3では、引数のラベルに関するエラーを修正する方法は、String型の使用可能なオーバーロードと一致しません。

Argument labels '(contentsOfURL:)' do not match any available overloads 

方法を:

let fileManager = FileManager.default 
let urls = fileManager.urls(for: .applicationSupportDirectory, in: .userDomainMask) 
let appDataURL = urls.last.appendingPathComponent("appData") 

let fileDestinationUrl = appDataURL!.appendingPathComponent("somefile.txt") 

var dataString = "" 
do { 
    dataString = try String(contentsOfURL: fileDestinationUrl) //<-- error here 
    print("dataString=\(dataString)") 
} catch let error as NSError { 
    print("Failed reading data in appData Directory, Error: \(error.localizedDescription)") 
} 

しかし、スウィフト3に、Xcodeは言ってラインdataString = try String(contentsOfURL: fileDestinationUrl)でエラーが発生しますこのエラーを修正するには? Swift 3でテキストファイルを読む正しい方法は何ですか?この方法は、(あなたの例の文脈で)に更新されました

+1

いつでも 'String(' 'を再入力してXCodeにすべての初期化子を表示させることができます。通常はあなたはどちらを使うべきかを知ることができます:) – Keiwan

+0

私はオートコンプリートが20%の時間で動作するかもしれません。 : - / – stuckj

答えて

2

dataString = try String(contentsOf: fileDestinationUrl) 

スウィフト3では特に他に定義されていない限り、すべての関数のparamsは現在のラベルを持っています。これは実際には、メソッド名の最後の部分が最初のparamsラベルに移動することを意味します。

関連する問題