簡體   English   中英

在iPhone上找到用戶的Documents目錄的最佳方法是什么?

[英]What's the best way to find the user's Documents directory on an iPhone?

我正在閱讀Erica Sadun的iPhone開發者手冊 ,並遇到了一個問題。

她在書中說,找到用戶的Documents目錄的方法是使用代碼:

[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];

但這似乎有點脆弱,並且不像普通Mac那樣做,這將是:

NSSearchPathForDirectoriesInDomains(NSDocumentsDirectory, NSUserDomainMask, YES);

是否有任何特殊原因使用一個而不是另一個?

Objc:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)

迅速:

var paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)

您將需要返回數組的第一個元素。

這是我在框架中使用的代碼。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

您應該考慮使用返回URL的NSFileManager方法,這是首選格式。

let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as NSURL

此方法旨在查找系統中的已知和常用目錄。

標識所請求目錄的NSURL對象數組。 根據域掩碼常量的順序對目錄進行排序,首先是用戶域中的項目,最后是系統域中的項目。

我用這個

NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *zipLocalPath = [documentPath stringByAppendingString:fileName];

在swift v3中,我使用了以下代碼段

var paths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM