Написать в директорию Main Bundle. Это разрешено? - PullRequest
4 голосов
/ 21 декабря 2011

Я был почти уверен, что запись в основном Bundle невозможна в iOS ... например, такая операция, как:

NSString *path = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
.....something
[xmlData writeToFile:path atomically:YES];

Почему первый пример в документации Apple использует именно этот код?

Ответы [ 2 ]

3 голосов
/ 21 декабря 2011

Пример для OS X, который не так строг с разрешениями, как iOS.

Я был бы удивлен, если бы вы могли делать это намного дольше (если вообще можете сейчас) в комплекте приложений Mac App Store.

Возможно, стоит оставить сообщение об ошибке в документации.

2 голосов
/ 21 декабря 2011

Это не ссылка на основной комплект. Это путь к папке ресурсов и список в этой папке.

Отсюда и название функции pathForResource...

Все в основном комплекте криптографически подписано, когда вы компилируете приложение. Папка ресурсов не все же. Вы можете писать туда и обратно свободно.

для @ jrturton

// we need to get the plist data...
    NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Symptoms" ofType:@"plist"];
    NSMutableArray *dataArray = [[NSMutableArray alloc] initWithContentsOfFile:plistPath];

    // add a new entry
    NSDictionary *addQuestion = [[NSDictionary alloc] initWithObjectsAndKeys:@"Blank.png",@"Icon",
                                 [NSString stringWithFormat:@"%i",r],@"ID",
                                 [titleTextField text],@"Title",
                                 [questionTextField text],@"Text",
                                 qnType,@"Type",
                                 @"1",@"Custom",
                                 [NSArray arrayWithObjects:@"Yes",@"No",nil],@"Values",
                                 [unitsTextField text],@"Units",
                                 nil];
    [dataArray addObject:addQuestion];
    [addQuestion release];

    // rewrite the plist
    [dataArray writeToFile:plistPath atomically:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...