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

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

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

β€” (void) parser:(NSXMLParser *)parser

foundCharacters:(NSString *)string{


if ([self.currentElementPointer.text length] > 0){

self.currentElementPointer.text =

[self.currentElementPointer.text stringByAppendingString: string];

} else {

self.currentElementPointer.text = string;

}


}


Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, называСтся parser: didEndElement: namespaceURI: qualifiedName:. Он вызываСтся, ΠΊΠΎΠ³Π΄Π° парсСр Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° элСмСнта. Π—Π΄Π΅ΡΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ просто Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ XML-элСмСнтов Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π²Ρ‹ΡˆΠ΅, ΠΊ Ρ‚ΠΎΠΌΡƒ элСмСнту, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ для Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ. ВсС довольно просто:


β€” (void) parser:(NSXMLParser *)parser

didEndElement:(NSString *)elementName

namespaceURI:(NSString *)namespaceURI

qualifiedName:(NSString *)qName{


self.currentElementPointer = self.currentElementPointer.parent;


}


И послСдний, Π½ΠΎ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. НуТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ parserDidEndDocument: ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ свойства currentElementPointer:


β€” (void)parserDidEndDocument:(NSXMLParser *)parser{

self.currentElementPointer = nil;

}


Π’ΠΎΡ‚ ΠΈ всС. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ синтаксичСский Ρ€Π°Π·Π±ΠΎΡ€ нашСго Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°:


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

didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{


NSString *xmlFilePath = [[NSBundle mainBundle] pathForResource:@"MyXML"

ofType:@"xml"];


NSData *xml = [[NSData alloc] initWithContentsOfFile: xmlFilePath];


self.xmlParser = [[NSXMLParser alloc] initWithData: xml];

self.xmlParser.delegate = self;

if ([self.xmlParser parse]){

NSLog(@"The XML is parsed.");


/* self.rootElement сСйчас являСтся ΠΊΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ элСмСнтом XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. */


} else{

NSLog(@"Failed to parse the XML");

}


self.window = [[UIWindow alloc] initWithFrame:

[[UIScreen mainScreen] bounds]];


self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

return YES;

}


Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство rootElement для ΠΎΠ±Ρ…ΠΎΠ΄Π° всСй структуры нашСго XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

Π“Π»Π°Π²Π° 12. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ

12.0. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма iOS основана Π½Π° MacOS X, которая, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, построСна Π½Π° Π±Π°Π·Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Unix. Π’ iOS полная структура ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² остаСтся Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ для прилоТСния, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, написанноС iOS-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, сущСствуСт Π² собствСнной пСсочницС. Π­Ρ‚Π° защищСнная срСда Π½Π΅ случайно называСтся пСсочницСй: ΠΎΠ½Π° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ прСдставляСт собой ТСстко ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, ΠΈ содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° пСсочницы доступно лишь Ρ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π΅Ρ‚ Сю. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прилоТСния Π΅ΡΡ‚ΡŒ собствСнный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³-пСсочница, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρƒ Ρ‚Π°ΠΊΠΈΡ… пСсочниц Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ прилоТСния.

Когда ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для iOS устанавливаСтся Π½Π° устройствС, систСма создаСт для этого прилоТСния структуру ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² (рис. 12.1).


Рис. 12.1. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π² iOS


β€’ Name.app β€” нСсмотря Π½Π° странноС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ. app, это ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. ВсС содСрТимоС вашСго основного ΠΏΠ°ΠΊΠ΅Ρ‚Π° оказываСтся здСсь. НапримСр, всС ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прилоТСния, Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» прилоТСния, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π±Ρ€Π΅Π½Π΄ΠΈΠ½Π³ΠΎΠ²Ρ‹Π΅ изобраТСния, ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹, Π·Π²ΡƒΠΊΠΈ ΠΈ ΠΏΡ€. автоматичСски отправятся Π² этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΊΠΎΠ³Π΄Π° систСма iOS Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° устройствС. Name β€” это имя ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Π·Π°Π΄Π°Π»ΠΈ для прилоТСния. Π˜Ρ‚Π°ΠΊ, Ссли Π²Ρ‹ Π½Π°Π·Π²Π°Π»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ MyApp, Ρ‚ΠΎ Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. app Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ MyApp.app.

β€’ Documents/ β€” этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ являСтся мСстом назначСния для всСго ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, создаваСмого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ заполняСтся, скачиваСтся ΠΈΠ»ΠΈ создаСтся вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

β€’ Library/ β€” этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… настроСк ΠΈ Ρ‚. Π΄. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΎΠ½ Π½Π΅ содСрТит Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΆΠ΅ находятся Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹.


Π’ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прилоТСния содСрТатся Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… я расскаТу Π΄Π°Π»Π΅Π΅.

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


Если Ρ€Π°Π±ΠΎΡ‚Π° прилоТСния Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ зависит ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π° дискС, Ρ‚ΠΎ этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π΅ Π»ΡƒΡ‡ΡˆΠ΅Π΅ мСсто для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π’Π°ΠΊΡƒΡŽ Π²Π°ΠΆΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π»ΡƒΡ‡ΡˆΠ΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΠ΅ /tmp.

β€’ Library/Preferences/ β€” ΠΊΠ°ΠΊ понятно ΠΈΠ· названия, Π² этом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ хранятся настройки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ запуска ΠΊ запуску. ΠœΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± этом Π² дальнСйшСм. iOS выполняСт Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· этого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

β€’ Library/Application Support/ β€” Π΄Π°Π½Π½Ρ‹Π΅, создаваСмыС вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ создаСт сам ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ), Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. ΠŸΡ€ΠΈΡΡ‚Π½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ iOS выполняСт Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ автоматичСски ΠΈ Π²Π°ΠΌ придСтся ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли Π΅Π³ΠΎ Π½Π΅ сущСствуСт. О создании этого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅.

β€’ tmp/ β€” это Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Ρ‚. Π΄. iOS Π½Π΅ выполняСт Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° нСсколько Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вашСго прилоТСния, вСдь Π² Ρ‚Π°ΠΊΠΎΠΌ случаС эти Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π½Π΅ придСтся ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС прилоТСния. ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ слуТит ΠΈΠΌΠ΅Π½Π½ΠΎ для этой Ρ†Π΅Π»ΠΈ. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹, создаваСмыС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.


Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ автоматичСски ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΏΡ€ΠΈ установкС прилоТСния Π½Π° устройствС с iOS. Π”Π°Π»Π΅Π΅ Π½Π°ΠΉΠ΄Π΅ΠΌ ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ здСсь ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ. Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ‚Π΅ΠΌΠΈ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Apple прСдоставляСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для этих Ρ†Π΅Π»Π΅ΠΉ (ΠΎ Ρ‚Π°ΠΊΠΈΡ… API ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ Π² дальнСйшСм Π² этой Π³Π»Π°Π²Π΅).

12.1. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡƒΡ‚ΠΈ ΠΊ самым ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ Π½Π° дискС

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

ВрСбуСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ, доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΅ΡΡ‚ΡŒ Ρƒ вашСго прилоТСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ, рассмотрСнным Π²ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ). ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ эти ΠΏΡƒΡ‚ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π² Π½ΠΈΡ… Π½ΠΎΠ²ΠΎΠ΅ содСрТимоС.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π°ΠΌ трСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ API, прСдоставляСмыС Π² iOS SDK, для нахоТдСния ΠΏΡƒΡ‚Π΅ΠΉ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ ΠΈ/ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌ. Π˜Π½Ρ‹ΠΌΠΈ словами, ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ слСдуСт ΡƒΠ³Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ. Если, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ ΠΏΡƒΡ‚ΠΈ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ Documents (Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹), Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ для этого ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ API. Никогда, Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ случаС Π½Π΅ рассчитывайтС Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ вашСго прилоТСния ΠΈΠΌΠ΅Π½Π½ΠΎ Documents ΠΈ Π½ΠΈΠΊΠ°ΠΊ ΠΈΠ½Π°Ρ‡Π΅. Для нахоТдСния ΠΏΡƒΡ‚ΠΈ ΠΊ этому ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ достаточно Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ подходящими API. Если вас интСрСсуСт Π½Π΅ сам ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ содСрТащиСся Π² Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Ρ‹, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ ΠΈΠΌΠ΅Π½Π° Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².

РСшСниС

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ экзСмпляра URLsForDirectory: inDomains:, относящийся ΠΊ классу NSFileManager.

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

Класс NSFileManager обСспСчиваСт мноТСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, связанных с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ, выполняСмых Π² iOS. ВсС Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ прямо Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΡ‚ вас трСбуСтся всСго лишь ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр этого класса. НС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ раздСляСмым Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСтся этим классом с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса defaultManager, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ этот ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π½Π΅ являСтся потокобСзопасным. Π›ΡƒΡ‡ΡˆΠ΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр класса NSFileManager ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌ.

ΠœΠ΅Ρ‚ΠΎΠ΄ экзСмпляра URLsForDirectory: inDomains:, относящийся ΠΊ классу NSFileManager, позволяСт ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС iOS, Π² основном Π² пСсочницС вашСго прилоТСния. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

β€’ URLsForDirectory: β€” это ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ. ΠŸΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ этому ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° NSSearchPathDirectory (ΠΎΠ½ΠΎ являСтся пСрСчислСниСм). Π”Π°Π»Π΅Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π½Π΅ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅;