【发布时间】:2010-11-20 00:07:35
【问题描述】:
我似乎偶然发现了一个关于从字符串中保存 xml 文件的问题(这是在 iPhone 上完成的) 该文件本身存在并包含在项目中(因此在工作区中),并且我从后面的代码 sn-p 获得的所有指示在模拟器上没有任何错误并在 iPhone 上失败(错误 513),但在任何一种情况下文件未保存!
{
Hits = config->Hits;
NSString* filenameStr = [m_FileName stringByAppendingFormat: @".xml" ];
NSString* pData = [self getDataString]; // write xml format - checked out ok
NSError *error;
/* option 2 - does not work as well
NSBundle *mainBundle = [NSBundle mainBundle];
NSURL *xmlURL = [NSURL fileURLWithPath:[mainBundle pathForResource: m_FileName ofType: @"xml"]];
if(![pData writeToURL: xmlURL atomically: true encoding:NSUTF8StringEncoding error:&error])
{
NSLog(@"Houston - we have a problem %s@\n",[error localizedFailureReason]);
return false;
}
*/
if(![pData writeToFile: filenameStr atomically: FALSE encoding:NSUTF8StringEncoding error:&error])
{
NSLog(@"Houston - we have a problem %s@\n",[error localizedFailureReason]);
return false;
}
return true;
}
任何帮助将不胜感激, -A
【问题讨论】:
-
你能给出解释什么是错误 513 的字符串吗?另外,请注意:在打印本地化失败原因时,最好在 NSLog 语句中使用 %@ 而不是 %s。 %@ 格式说明符接受一个 NSString*,而 %s 需要一个以 null 结尾的 char* 字符串。
-
从技术上讲, %@ 采用任何 NSObject 类型,并调用 [object description] 在字符串的情况下是它本身;但它也适用于其他 NSObject 类型(例如数组、集合等)
标签: objective-c iphone save