Weitere ähnliche Inhalte Ähnlich wie занятие8 (20) Mehr von Oleg Parinov (20) занятие83. а что внутри?
Home Directory Layout
• Each app has its own set of directories
я!
• <Application Home> ельз
! MyApp.app т ьн
е ня
! MyApp -м
! MainWindow.nib
! SomeImage.png
! Documents - добавления здесь!
! Library
! Caches
! Preferences
• Applications only read and write within their home directory
• Backed up by iTunes during sync (mostly)
4. File Paths in Your Application
File Paths in Your Application
// Basic directories
путь к документам
NSString *homePath = NSHomeDirectory();
// Basic directories NSTemporaryDirectory();
NSString *tmpPath =
NSString *homePath = NSHomeDirectory();
// Documents directory
NSString *tmpPath = NSTemporaryDirectory();
NSArray *paths = NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES);
// Documents directory
NSArray *paths = NSSearchPathForDirectoriesInDomains
NSString *documentsPath = [paths objectAtIndex:0];
(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
// <Application Home>/Documents/foo.plist
NSString *fooPath =
// <Application stringByAppendingPathComponent:@“foo.plist”];
[documentsPath Home>/Documents/foo.plist
NSString *fooPath =
[documentsPath stringByAppendingPathComponent:@“foo.plist”];
Tuesday, February 2, 2010 1
Tuesday, February 2, 2010 16
5. SQLite!
• база в файле
• нет сервера
• простая реализация
• включена в iPhone
6. 6 шагов
• находим файл базы
• подключаемся - sqlite3_open
• создаем запрос
• готовим, проверяем - sqlite3_prepare_v2
• выполняем - sqlite3_step
• завершаем - sqlite3_finalize
• закрываем -
sqlite3_close
7. шаг 0 - создать БД
$ sqlite3 ex1
SQLite version 3.6.11
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table tbl1(one varchar(10), two smallint);
sqlite> insert into tbl1 values('hello!',10);
sqlite> insert into tbl1 values('goodbye', 20);
sqlite> select * from tbl1;
hello!|10
goodbye|20
sqlite>
8. подготовка
#import <sqlite3.h>
NSString *databaseName = @"Cocktails.sql";
NSArray *documentPaths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,
YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *databasePath = [documentsDir
stringByAppendingPathComponent:databaseName];
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
success = [fileManager fileExistsAtPath:databasePath];
if(!success) {
NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath]
stringByAppendingPathComponent:databaseName];
[fileManager copyItemAtPath:databasePathFromApp toPath:databasePath
error:nil];
[fileManager release];
}
9. чтение
sqlite3 *database;
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
const char *sqlStatement = "select * from cocktail;";
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) ==
SQLITE_OK) {
while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
int anId = sqlite3_column_int(compiledStatement, 0);
NSString *aName = [NSString stringWithUTF8String:(char
*)sqlite3_column_text(compiledStatement, 1)];
//...
}
}
sqlite3_finalize(compiledStatement);
}
sqlite3_close(database);
11. Google
Maps API Facebook API
Яндекс Карты
API
Twitter API общение с
вашим сервером
12. xml
<?xml version="1.0" encoding="UTF-8" ?>
<painting>
<img src="madonna.jpg" alt='Foligno Madonna, by
Raphael'/>
<caption>This is Raphael's "Foligno" Madonna, painted in
<date>1511</date>–<date>1512</date>.
</caption>
</painting>
13. xml
NSURL *xmlURL = [NSURL URLWithString:URL];
NSXMLParser * rssParser = [[NSXMLParser alloc] initWithContentsOfURL:xmlURL];
[rssParser setDelegate:self];
[rssParser parse];
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
attributes:(NSDictionary *)attributeDict
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
- (void)parserDidEndDocument:(NSXMLParser *)parser {
14. What does a JSON object look like?
json
{
“instructor” : “Josh Shaffer”,
“students” : 60,
“itunes-u” : true,
“midterm-exam” : null,
“assignments” : [ “WhatATool”,
“HelloPoly”,
“Presence” ]
}
• NSDictionary *result = [jsonString JSONValue];
y, February 2, 2010 41
Hinweis der Redaktion \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n