Стоит ли проверять, существует ли файл по заданному пути при попытке прочитать данные в объект NSData
?Сейчас я этого не делаю, но мой код работает, так как мой массив, который должен быть заполнен данными из файла, будет установлен равным nil, и позже я смогу проверить, равен ли этот массив нулю в моем приложении.Но я думаю, что код, возможно, «уродлив» и будет работать лучше, если я сделаю проверку (как в комментарии к коду).
NSData *codedData = [[NSData alloc] initWithContentsOfFile:[CareersParser dataFilePath]];
/*
if (codedData != nil) {
//do the below (not commented out code)
} else {
//file doesn't exist at the given path
[codedData release];
return nil;
}
*/
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:codedData];
NSArray *careers = [unarchiver decodeObjectForKey:kDataKey];
[unarchiver finishDecoding];
NSMutableArray *ids = [[NSMutableArray alloc] init];
for (Career *career in careers) {
[ids addObject:[career id]];
}
// Sort the array in an orderly fashion
NSArray *sortedIds = [ids sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
// Release allocated memory
[ids release];
[unarchiver release];
[codedData release];
return sortedIds;