2013-11-08 5 views
1

Код работал 100%, но после перехода на iOS7 и XCode 5 я не могу получить путь к файлу с помощью методов NSFilemanager, код не может найти путь к timetableXML файл и запускает -> еще @ «нЕТ такой файл не существует», здесь есть код:Не удается получить путь к файлу

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    APUAppDelegate *appDelegate = (APUAppDelegate *)[[UIApplication sharedApplication]delegate]; 
    context = [appDelegate managedObjectContext]; 


    dispatch_queue_t queue = dispatch_get_global_queue(0,0); 
    dispatch_async(queue, ^{ 
     NSLog(@"Beginning download"); 
     NSString *stringURL = @"http://webspace.apiit.edu.my/intake-timetable/download_timetable/timetableXML.zip"; 
     NSURL *url = [NSURL URLWithString:stringURL]; 
     NSData *urlData = [NSData dataWithContentsOfURL:url]; 
     NSLog(@"Got the data!"); 
     //Find a cache directory. You could consider using documenets dir instead (depends on the data you are fetching) 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
     NSString *path = [paths objectAtIndex:0]; 

     //Save the data 
     NSLog(@"Saving"); 
     dataPath = [path stringByAppendingPathComponent:@"timetableXML.zip"]; 
     dataPath = [dataPath stringByStandardizingPath]; 
     [urlData writeToFile:dataPath atomically:YES]; 

     /////////////////// TEST 
     // Existence of the xml file 

     NSFileManager *fileManager = [NSFileManager defaultManager]; 
     NSString *pathToMyFile = [path stringByAppendingPathComponent:@"timetableXML.zip"]; 
     if ([fileManager fileExistsAtPath:pathToMyFile]) { 
      // file exists 
      NSLog(@"YES a file exist with ZIP extension"); 
      NSLog(@"Unziped successfully!"); 
      path1 = pathToMyFile; 
      [self unzipFile:path1]; 

     } 
     else { 
      NSLog(@"NO such a file exist"); 
     }   

    }); 

} 

ответ

0

при записи файла путь создается с помощью этого кода:

dataPath = [path stringByAppendingPathComponent:@"timetableXML.zip"]; 
dataPath = [dataPath stringByStandardizingPath]; 

но при тестировании путь создается с помощью этого кода, который не является таким же:

NSString *pathToMyFile = [path stringByAppendingPathComponent:@"timetableXML.zip"]; 

NSLog() оба пути и попытаться найти проблему.

Посмотрите, был ли файл записан. Обратите внимание, что не было проверки состояния метода writeToFile:, добавьте эту ошибку.

+0

Благодарим за решение Zaph. Я проверил оба пути, и они были одинаковыми. Запись в файл также. то, что мне интересно, - это время, когда я использую резервную копию на xcode 4 и iOS 6, все работает отлично, но на iOS 7 и xcode 5. Эта проблема возникает. но я должен проверить больше. – Ben

Смежные вопросы