2012-03-13 62 views
2

我需要等到文件移动到新位置才能使用它。等到操作完成

在模拟器中,此代码运行速度很快,并且在我开始使用它之前将文件移动到新位置,但在真实设备上它不是。

我试图使用@synchronized,但似乎它不是正确的工具。

任何建议?

 NSURL *newurl = [[legacyPersistentStoreURL URLByDeletingPathExtension] URLByAppendingPathExtension:@"guide"]; 
     NSURL *desturl = [newurl URLByAppendingPathComponent:@"StoreContent"]; 
     [[NSFileManager defaultManager] createDirectoryAtURL:desturl withIntermediateDirectories:YES attributes:nil error:NULL]; 
     NSURL *finalurl = [desturl URLByAppendingPathComponent:@"persistentStore"]; 
     [fileManager moveItemAtURL:legacyPersistentStoreURL toURL:finalurl error:NULL]; 

回答

2

这种方法可以帮助

- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait; 
+0

不,那是行不通的。 UIManagedDocument错误:操作无法完成。 (可可错误260.) 2012-03-13 14:39:21.371指南[8824:2403] { reason =“缺少存储文件”; } – Shmidt 2012-03-13 10:41:21

+0

@Flink代码中存在其他一些问题。你得到NSFileReadNoSuchFileError。 – Vignesh 2012-03-13 10:49:26

+0

这是因为文件没有移动到新的位置。接下来使用该文件的代码在文件移动的同时运行 – Shmidt 2012-03-13 11:03:11