应用程序可以在模拟器上运行,但不能在iPad上运行



我目前正在编写一个应用程序,使用核心图形在屏幕周围移动对象。一旦对象被移动,它就会在plist中保存它们的位置。加载时,它从列表中加载对象的位置。如果由于某种原因没有plist或无法从plist加载数据,则加载默认位置。它在模拟器中工作得很好,但在iPad上运行时,它会一直加载默认值,即使plists存在。我从iTunes上下载了列表,它们已经更新了,但不知为什么它不能读取它们?还有其他人有类似的plists问题吗?

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"]];

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];
}

一旦我实现了这段代码,它就可以正常工作了

谢谢你的帮助

杰克

相关内容

最新更新