какой лучший способ найти каталог документов пользователя на iphone?

<p>я читаю книгу эрика садуна<em> iphone developer cookbook </em>и столкнулась с вопросом.</p><p>в книге она говорит, что способ найти каталог документов пользователя с помощью кода:</p><pre><code>[nshomedirectory() stringbyappendingpathcomponent:@"documents"]; </code></pre><p>но это кажется слегка ломким и не похожим на обычный способ mac, который будет:</p><pre><code>nssearchpathfordirectoriesindomains(nsdocumentsdirectory, nsuserdomainmask, yes); </code></pre><p>есть ли какие-то конкретные причины для использования одного над другим?</p>

<p>objc:</p><pre><code>nsarray *paths = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) </code></pre><p>swift:</p><pre><code>var paths = nssearchpathfordirectoriesindomains(nssearchpathdirectory.documentdirectory, nssearchpathdomainmask.userdomainmask, true) </code></pre><p>вам понадобится первый элемент возвращаемого массива.</p>

<p>вот код, который я использую в моей структуре.</p><pre><code>nsarray *paths = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes); nsstring *documentsdirectory = [paths objectatindex:0]; </code></pre>

<h3>вы должны рассмотреть возможность использования методов nsfilemanager, которые возвращают url-адреса, которые являются предпочтительным форматом.</h3><pre><code>let documentsurl = nsfilemanager.defaultmanager().urlsfordirectory(.documentdirectory, indomains: .userdomainmask)[0] as nsurl </code></pre><p>этот метод предназначен для поиска известных и общих каталогов в системе. </p><p>массив объектов nsurl, идентифицирующих запрашиваемые каталоги. каталоги упорядочены в соответствии с порядком констант маски домена, в первую очередь элементы в пользовательском домене и последние в системном домене.</p>

<p>я использую это</p><pre><code>nsstring *documentpath = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) lastobject]; nsstring *ziplocalpath = [documentpath stringbyappendingstring:filename]; </code></pre>

<p>в swift v3 я использовал следующий фрагмент </p><pre><code>var paths = nssearchpathfordirectoriesindomains(filemanager.searchpathdirectory.documentdirectory, filemanager.searchpathdomainmask.userdomainmask, true) </code></pre>