[解決済み] SwiftでNSDocumentDirectoryを見つけるには?
2022-04-24 06:20:10
質問
ドキュメントフォルダへのパスをコードで取得しようとしています。
var documentsPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory:0,NSSearchPathDomainMask:0,true)
が、Xcodeでエラーになる。
Cannot convert expression's type 'AnyObject[]!' to type 'NSSearchPathDirectory'
コードのどこが間違っているのか理解しようとしています。
どのように解決するのですか?
どうやら、コンパイラは
NSSearchPathDirectory:0
は配列であり,当然ながら
NSSearchPathDirectory
ではなく 確かに、親切なエラーメッセージではありませんね。
しかし、その理由については
まず、引数の名前と型を混同しています。関数の定義を見てみましょう。
func NSSearchPathForDirectoriesInDomains(
directory: NSSearchPathDirectory,
domainMask: NSSearchPathDomainMask,
expandTilde: Bool) -> AnyObject[]!
-
directory
とdomainMask
が名前だとすると、型を使っていることになりますが、とにかく関数の場合は省くべきでしょう。これらは主にメソッドで使用されます。 - また、Swiftは強く型付けされているので、0だけではダメで、enumの値を代わりに使います。
- そして最後に、単一のパスだけでなく、配列を返します。
ということで、(Swift 2.0用にアップデートされた)ものが残りました。
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
とSwift 3用です。
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
関連
-
[解決済み] performSelectorのセレクタが不明なため、リークが発生する可能性があります。
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] 純粋な」Swift で弱いプロトコル参照を作るには (@objc なしで) どうしたらいいですか?
-
[解決済み] Swiftでdispatch_onceのシングルトンモデルを使う
-
[解決済み】iOSアプリの名前を変更する方法は?
-
[解決済み】Swift 3で遅延をプログラムする方法
-
[解決済み】swiftで辞書のキーから配列にする
-
[解決済み】(Swiftで)オブジェクトの型を調べるには?)
-
[解決済み】Swiftの`let`と`var`の違いは何ですか?
-
[解決済み] 関数のパラメータとしてクラス型を渡す方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[iOS]コンパイルエラー:ld: アーキテクチャ x86_64 のシンボルが見つかりません。
-
XCode のコンパイル例外を解決する clang: error: linker command failed with exit code 1
-
[解決済み] 文字列の長さを取得する
-
[解決済み] フレームワークを使用したiOSアプリがデバイス上でクラッシュ、dyld: ライブラリがロードされない、Xcode 6 Beta
-
[解決済み] Objective-CでNSNotificationCenterを通してメッセージを送受信する?
-
[解決済み] UINavigationBarの1px下の行を非表示にする方法
-
[解決済み] テキストフィールドを移動する方法(次へボタン/完了ボタン)
-
[解決済み] 16進カラーバリューの使用方法
-
[解決済み] iOS 11、Apple TV 4Kなどを搭載したXcode 9でワイヤレスデバッグを行う方法とは?
-
[解決済み] IOSのUIViewからアプリケーションのドキュメントフォルダに画像を保存する