У меня есть проблема, которую я не могу сохранить в iOS 8, пока она отлично работает в iOS 7. Пожалуйста, где моя проблема?Не могу написатьToFile toFullPath в iOS 8 issue
.h
NSMutableArray *selected;
.m
- (void)saveSelected
{
if (![selected writeToFile:[SettingVO toFullPath:@"selected"] atomically:YES])
{
NSLog(@"Could not save selected!!! %@", selectedParitems);
}
}
Update: У меня есть включают toFullPath
метод и я отлажена его. Я обнаружил, что с iOS 7 он не пропускает бросок, если fileMgr
и работает нормально, а с iOS 8 он возвращает нуль. Надеюсь, это поможет.
+ (NSString *)toFullPath:(NSString *)path
{
NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
NSURL *url = [NSURL fileURLWithPath:bundlePath];
NSMutableArray *components = [NSMutableArray arrayWithArray:[url pathComponents]];
[components removeLastObject];
[components addObject:@"Documents"];
[components addObject:@"data"];
NSString *fullPath = [NSString pathWithComponents:components];
NSFileManager *fileMgr = [NSFileManager defaultManager];
if (![fileMgr fileExistsAtPath:fullPath isDirectory:NULL])
{
if ([fileMgr createDirectoryAtPath:fullPath withIntermediateDirectories:NO attributes:nil error:nil])
{
//--N-SLog(@"+ Items directory created.");
}
else
{
//--N-SLog(@"- Couldn't create Items directory!!!");
return nil;
}
}
return [fullPath stringByAppendingPathComponent:path];
}
Что возвращается '[SettingVO toFullPath: @" selected "]'? –
В iOS 8 он возвращает 'NULL', но в iOS 7 он возвращает«/Users/CANCAN/Library/Developer/CoreSimulator/Devices/BD971C52-6E84-4DDA-A90F-588476CFA2D1/data/Applications/D5E87B2C-C027-4F53-88B1 -6FFF989CD5D8/Documents/data/selected ", который имеет путь @PhillipMills – CAN
Возможно, вы используете отладчик внутри' toFullPath: ', чтобы узнать, почему он возвращает NULL. –