2014-12-06 24 views
1

以下方法在iOS上使用時是否返回多個值?如果有,您是否有過這種情況發生的示例以及如何知道您要求的元素?請問NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory目錄,NSSearchPathDomainMask);曾在iOS上返回多個值

NSArray* NSSearchPathForDirectoriesInDomains (NSSearchPathDirectory directory, NSSearchPathDomainMask domainMask, BOOL expandTilde); 

我想知道,因爲我有用於得到一個路徑到文檔目錄(見下文)的參數調用它,並且假定它返回只有一個元素的數組。它工作得很好,但我想到我可能需要確保我永遠不會再有一個以上的元素。如果我得到的不止一個,我想知道我怎麼知道哪一個是我要求的?

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docPath = paths[0]; 
+0

這裏有個問題的部分答案: http://stackoverflow.com/questions/24364257/why-nssearchpathfordirectoriesindomains-returns-an-nsarray – iCMS 2015-01-03 21:27:43

回答

1

這是我的理解,在iOS上你只會得到返回數組中的單個元素。

我相信它會返回一個數組而不是一個單獨的值,因爲它也被OS X使用,並且儘可能地將其作爲一般用途。在OS X上,根據域掩碼,它可能會返回多個元素,代表用戶的文檔目錄,計算機的文檔目錄等等。另外,請注意,Apple建議使用NSFileManager方法URLsForDirectory:inDomains:URLForDirectory:inDomain:appropriateForURL:create:error:,而不是指出URL優於路徑字符串。