我目前正在编写一个使用Core图形在屏幕上移动对象的应用程序。移动对象后,将其位置保存在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"]];
答案 0 :(得分: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];
}
一旦我实现了这段代码,它就没有问题了
感谢您的帮助
杰克