2011-09-07 258 views
1

我目前正在编写一个应用程序,它使用Core图形在屏幕上移动对象。一旦物体被移动,它将它们的位置保存在plist中。在加载时,它会从plist中加载对象的位置。如果由于某种原因没有plist或无法从plist加载数据,它会加载默认位置。它可以在模拟器中正常工作,但是在iPad上运行时,它会继续加载默认设置,尽管plists存在。我通过iTunes下载了plists,他们已经更新,但由于某些原因,它不会读取它们?有没有其他人与plists有类似的问题?应用程序在模拟器上工作,但不在iPad上

NSString *error = [[[NSString alloc]init]autorelease]; 

NSPropertyListFormat format; 

NSString *plistName = [[[NSString alloc] initWithFormat:@"nameOfObject%d", [delegate plistSelected]]autorelease]; 



NSString *plistPath = [[[NSString alloc] init]autorelease]; 
plistPath = [[NSBundle mainBundle] pathForResource:plistName ofType:@"plist"]; 

    NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath]; 


NSDictionary *plistData = (NSDictionary *)[NSPropertyListSerialization propertyListFromData:plistXML mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&format errorDescription:&error]; 

if(! plistData){ 

    NSLog(@"error reading the plist: %@ format:%d", error, format); 
} 

NSArray *arrayOfDictonarys = [[NSArray alloc] initWithArray:[plistData objectForKey:@"DicName"]]; 
+1

的一些代码显示的代码加载plist。听起来像一个文件名大小写问题。该设备区分大小写。 – Anna

+0

我的一个应用程序完全按照您描述的方式工作,没有任何问题。确认您正在阅读plists并获得您的预期。 – progrmr

+2

这是plist加载的问题。请记住,在设备上,您必须将文件保存在文档目录中。 – 0xSina

回答

3

PragamOnce被发现是错误的目录。我不知道这是为什么,但它是。我得到了我的大学其纠正错误

+(NSString*) pathToDocumentsFolder 
{ 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
return documentsDirectory; 
} 
+(NSString*) pathToFileInDocumentsFolder:(NSString*)filename 
{ 
NSString *pathToDoc = [NSBundle pathToDocumentsFolder]; 
return [pathToDoc stringByAppendingPathComponent:filename]; 
} 

一旦我实现了这个代码,它的工作没有问题

感谢您的帮助

杰克

+0

你在ViewController中编写了这个方法吗?我在保存和加载声音文件时遇到了类似的问题。提前致谢。 – andres83

相关问题