Добавлены файлы в мой Plist - я думаю, что я почти там - PullRequest
2 голосов
/ 26 марта 2012

В моем приложении для iOS я создал форму, которая должна отправлять данные в список.Я следовал за примерами по этой ссылке среди прочего -

Как записать данные в plist?

Теперь я думаю, что я все сделалверно, за исключением того, что я получаю одну ошибку, и она связана с ARC, - говорит XCode, - поэтому я не уверен, что использованный пример устарел или я просто что-то забыл.

Чтобы уточнить - у меня есть сохранениеКнопка с соответствующим - (IBAction), и он не дает ошибок, поэтому я думаю, что я в порядке там.Я думаю, что бит, который нужно настроить, - это копирование исходного Data.plist в папку с документами, чего, я думаю, я должен достичь с помощью этого.

Я вставил код, где ошибка происходит ниже.Любая помощь хороша, и если я могу помочь, отправив больше кода, дайте мне знать: -)

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.


NSString *destPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
destPath = [destPath stringByAppendingPathComponent:@"Data.plist"];

// If the file doesn't exist in the Documents Folder, copy it.
NSFileManager *fileManager = [NSFileManager defaultManager];

if (![fileManager fileExistsAtPath:destPath]) {
    NSString *sourcePath = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
    [fileManager copyItemAtPath:sourcePath toPath:destPath];
}

// Load the Property List.
savedReadingsDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:destPath];
}

Приветствия Джефф

Я только что заметил, что не уточнил, что дает мнеошибка:

именно эта строка

[fileManager copyItemAtPath:sourcePath toPath:destPath];

и ошибка:

ARC Issue - Нет видимого @interface для 'NSFileManager' объявляет селектор copyItemAtPath: toPath: '

Ответы [ 2 ]

2 голосов
/ 26 марта 2012

Вы использовали метод, который не существует.Вам просто нужно изменить его на

[fileManager copyItemAtPath:sourcePath toPath:destPath error:nil];

Вместо передачи nil в качестве ошибки, вы также можете передать свой пользовательский объект NSError.Обратитесь к NSFileManager справочнику класса , чтобы увидеть все разрешенные методы

2 голосов
/ 26 марта 2012

NSFileManager не содержит метод.

[fileManager copyItemAtPath: toPath:];

Вы должны использовать следующий метод,

- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error NS_AVAILABLE(10_5, 2_0);
...