Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«iOS. ΠŸΡ€ΠΈΠ΅ΠΌΡ‹ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 107

Автор Π’Π°Π½Π΄Π°Π΄ Нахавандипур

β€’ inDomains β€” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π³Π΄Π΅ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊ Ρ‚ΠΈΠΏΡƒ NSSearchPathDomainMask (это Ρ‚ΠΎΠΆΠ΅ пСрСчислСниС).

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ Documents (Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹) вашСго прилоТСния. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ просто это дСлаСтся:


NSFileManager *fileManager = [[NSFileManager alloc] init];

NSArray *urls = [fileManager URLsForDirectory: NSDocumentDirectory

inDomains: NSUserDomainMask];


if ([urls count] > 0){

NSURL *documentsFolder = urls[0];

NSLog(@"%@", documentsFolder);

} else {

NSLog(@"Could not find the Documents folder.");

}


Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, создав собствСнный экзСмпляр NSFileManager, ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NSDocumentDirectory Π² качСствС искомого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ NSUserDomainMask β€” Π² качСствС области поиска. Рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° экзСмпляра URLsForDirectory: inDomains:, относящСгося ΠΊ классу NSFileManager:

β€’ URLsForDirectory;

β€’ NSLibraryDirectory β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ прилоТСния;

β€’ NSCachesDirectory β€” ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ кэша β€” ΠΎ Π½Π΅ΠΌ рассказано Ρ€Π°Π½Π΅Π΅;

β€’ NSDocumentDirectory β€” ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²;

β€’ inDomains;

β€’ NSUserDomainMask.


Π”Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ поиск Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. Π’ систСмС OS X этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ обозначался Π±Ρ‹ ~/.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ caches, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π΄Π°Π»Π΅Π΅:


NSFileManager *fileManager = [[NSFileManager alloc] init];

NSArray *urls = [fileManager URLsForDirectory: NSCachesDirectory

inDomains: NSUserDomainMask];


if ([urls count] > 0){

NSURL *cachesFolder = urls[0];

NSLog(@"%@", cachesFolder);

} else {

NSLog(@"Could not find the Caches folder.");

}


Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ tmp, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ NSTemporaryDirectory() Π½Π° языкС C, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

NSString *tempDirectory = NSTemporaryDirectory();

NSLog(@"Temp Directory = %@", tempDirectory);


Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π° устройствС, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

Temp Directory = /private/var/mobile/

Applications/<# Π—Π΄Π΅ΡΡŒ находится ID Π²Π°ΡˆΠ΅Π³ΠΎ прилоТСния #>/tmp/

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅

Π Π°Π·Π΄Π΅Π» 12.0.

12.2. Π—Π°ΠΏΠΈΡΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ считываниС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

ВрСбуСтся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π° дискС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, тСкст, Π΄Π°Π½Π½Ρ‹Π΅, изобраТСния ΠΈ Ρ‚. Π΄.).

РСшСниС

ВсС классы Cocoa, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ сохранСниС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ NSString, UIImage ΠΈ NSData, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ экзСмпляра, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° дискС ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ.

ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ тСкст Π½Π° дискС (прСдполагаСтся, Ρ‡Ρ‚ΠΎ ваш тСкст сохранСн Π² экзСмплярС NSString ΠΈΠ»ΠΈ нСизмСняСмой вСрсии этого класса), ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ экзСмпляра writeToFile: atomically: encoding: error:, относящимся ΠΊ этому классу. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ примСняСтся со строками, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ собой ΠΏΡƒΡ‚ΠΈ назначСния. Π’ΠΎΡ‚ Π΅Π³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

β€’ writeToFile β€” ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, указываСтся Π² Π²ΠΈΠ΄Π΅ строки.

β€’ atomically β€” логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если ΠΎΠ½ΠΎ установлСно Π² YES, Ρ‚ΠΎ Ρ„Π°ΠΉΠ» сначала Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ пространство, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎΡ‚ адрСс, Π³Π΄Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΅Π³ΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ. Π’Π°ΠΊ гарантируСтся, Ρ‡Ρ‚ΠΎ содСрТимоС Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ трСбуСтся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, сначала Π±ΡƒΠ΄Π΅Ρ‚ просто пСрСнСсСно Π½Π° диск, Π° ΡƒΠΆΠ΅ Π·Π°Ρ‚Π΅ΠΌ пСрСсохранСно Π² мСстС назначСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ΠΊΠ°Π· систСмы iOS ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ сохранСн Π² мСстС назначСния, ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ доступСн ΠΈ ΠΏΠΎΠ·Π΄Π½Π΅Π΅, ΠΊΠΎΠ³Π΄Π° опСрационная систСма Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ. И Π²Ρ‹ смоТСтС ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΊΡƒΠ΄Π° слСдуСт. ΠŸΡ€ΠΈ сохранСнии ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ рСкомСндуСтся ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² YES, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΈ ΠΏΡ€ΠΈ ΠΊΠ°ΠΊΠΈΡ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°Ρ… Π½Π΅ Ρ‚Π΅Ρ€ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ прилоТСния Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎ.

β€’ encoding β€” ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° тСкста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ адрСсу. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° UTF-8, задаваСмая с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ константы NSUTF8StringEncoding.

β€’ error β€” ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ NSError. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ссли опСрация сохранСния Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ошибкой ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½Π°, Ρ‚ΠΎ Π²Ρ‹ смоТСтС Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, какая ΠΈΠΌΠ΅Π½Π½ΠΎ ошибка ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π°. Π­Ρ‚ΠΎΠΌΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ nil, Ссли вас Π½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π² процСссС сохранСния. НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ просто ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° какая-Π»ΠΈΠ±ΠΎ ошибка ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΈΠΉ тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½ΠΎ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ систСмы iOS Π½Π΅ трСбуСтся, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ:


NSString *someText = @"Random string that won't be backed up.";


NSString *destinationPath =

[NSTemporaryDirectory()

stringByAppendingPathComponent:@"MyFile.txt"];


NSError *error = nil;

BOOL succeeded = [someText writeToFile: destinationPath

atomically: YES

encoding: NSUTF8StringEncoding

error:&error];


if (succeeded) {

NSLog(@"Successfully stored the file at: %@", destinationPath);

} else {

NSLog(@"Failed to store the file. Error = %@", error);

}


ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° сдСлаСтС всС это, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ вся Ρ€Π°Π±ΠΎΡ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π²Π΅Ρ€Π½ΠΎ. ΠŸΠΎΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚Ρƒ ΠΆΠ΅ строку ΠΈΠ· Ρ„Π°ΠΉΠ»Π° назначСния Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ класса stringWithContentsOfFile: encoding: error:, относящийся ΠΊ классу NSString. Π’ ΠΎΡ‚Π²Π΅Ρ‚ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ автоматичСски Π²Ρ‹ΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½Π½ΡƒΡŽ строку, которая прСдставляСт собой содСрТимоС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ явно ΠΈΠ½ΡΡ‚Π°Π½Ρ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° NSString с содСрТимым Ρ„Π°ΠΉΠ»Π°, просто ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ экзСмпляра initWithContentsOfFile: encoding: error:, относящийся ΠΊ классу NSString, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:


β€” (BOOL) writeText:(NSString *)paramText toPath:(NSString *)paramPath{

return [paramText writeToFile: paramPath

atomically: YES

encoding: NSUTF8StringEncoding

error: nil];

}


β€” (NSString *) readTextFromPath:(NSString *)paramPath{

return [[NSString alloc] initWithContentsOfFile: paramPath

encoding: NSUTF8StringEncoding

error: nil];


}


β€” (BOOL) application:(UIApplication *)application

didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{


NSString *filePath = [NSTemporaryDirectory()

stringByAppendingPathComponent:@"MyFile.txt"];


if ([self writeText:@"Hello, World!" toPath: filePath]){


NSString *readText = [self readTextFromPath: filePath];

if ([readText length] > 0){

NSLog(@"Text read from disk = %@", readText);

} else {

NSLog(@"Failed to read the text from disk.");

}


} else {

NSLog(@"Failed to write the file.");

}


self.window = [[UIWindow alloc]

initWithFrame: [[UIScreen mainScreen] bounds]];

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

return YES;

}


Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ создали Π΄Π²Π° ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π½Π°ΠΌ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ тСкст ΠΈ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ мСста. Π—Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² Π΄Π΅Π»Π΅Π³Π°Ρ‚Π΅ нашСго прилоТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ тСкст Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ temp, Π° ΠΏΠΎΡ‚ΠΎΠΌ считаСм этот тСкст ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ Ρ‚Π°ΠΊ убСдимся, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с URL, инкапсулированными Π² экзСмпляры NSURL (ΠΈΠ»ΠΈ Π² экзСмпляры измСняСмой вСрсии этого класса), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΠ΅Ρ‚ΠΎΠ΄ экзСмпляра writeToURL: atomically: encoding: error:.

ЭкзСмпляры NSURL ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° рСсурсы (Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΈ Ρ‚. Π΄.), располоТСнныС Π² локальной систСмС ΠΈΠ»ΠΈ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… устройствах. Π’Π°ΠΊ, экзСмпляр NSURL ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Documents (Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹) Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ NSURL β€” ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ URL сайта www.apple.com. Π­Ρ‚ΠΎΡ‚ класс просто прСдоставляСт Π²Π°ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для доступа ΠΊ URL ΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ, нСзависимо ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ URL.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΠ΅ классы ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΈ NSString. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, NSArray. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ содСрТимоС массива, ΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ экзСмпляра writeToFile: atomically:, относящимся ΠΊ классу NSArray. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ с диска содСрТимоС любого массива, ΠΌΠΎΠΆΠ½ΠΎ просто Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ экзСмпляр массива, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ initWithContentsOfFile: β€” это ΠΌΠ΅Ρ‚ΠΎΠ΄-ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования ΠΎΠ±ΠΎΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:


NSString *filePath = [NSTemporaryDirectory()

stringByAppendingPathComponent:@"MyFile.txt"];


NSArray *arrayOfNames = @[@"Steve", @"John", @"Edward"];

if ([arrayOfNames writeToFile: filePath atomically: YES]){


NSArray *readArray = [[NSArray alloc] initWithContentsOfFile: filePath];

if ([readArray count] == [arrayOfNames count]){

NSLog(@"Read the array back from disk just fine.");

} else {

NSLog(@"Failed to read the array back from disk.");

}

} else {

NSLog(@"Failed to save the array to disk.");

}

ΠœΠ΅Ρ‚ΠΎΠ΄ экзСмпляра writeToFile: atomically:, относящийся ΠΊ классу NSArray, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ лишь массивы, содСрТащиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ²: