将 udid 字符串保存到文本文件
Posted
技术标签:
【中文标题】将 udid 字符串保存到文本文件【英文标题】:saving udid string to a text file 【发布时间】:2014-03-02 09:02:03 【问题描述】:您好,我正在开发一个简单的 ios 激活应用程序。我想将 udid 保存在文本文件中,并与当前 udid 相同的文本文件,但我无法将 udid 保存到文本文件中
NSString *udid = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
NSURL *fileURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"h" ofType:@"txt"]];
NSMutableString *text = [NSMutableString stringWithContentsOfURL:fileURL encoding:NSUTF8StringEncoding error:nil];
NSLog(@"text is : %@",text);
NSString *text1 = text;
NSString *y;
if ([text1 isEqualToString:y])
[text appendString:udid];
NSString *myURLString = [fileURL absoluteString];
[text writeToFile:myURLString atomically: YES encoding:NSUTF8StringEncoding error:nil];
NSLog(@"saved to file : %@",text);
else
if ([text isEqualToString:udid])
NSLog(@"yes thats it");
lable.text = @"yes thats it";
else
NSLog(@"nononono");
exit(0);
【问题讨论】:
【参考方案1】:您的代码存在一些问题。开始于:
if ([text1 isEqualToString:y])
“y”在哪里定义或声明?
此外,您在写入文件时永远不会查看错误参数。改变这个:
[text writeToFile:myURLString atomically: YES encoding:NSUTF8StringEncoding error:nil];
到这里:
NSError *error;
BOOL success = [text writeToFile:myURLString atomically: YES encoding:NSUTF8StringEncoding error:&error];
if(NO == success)
NSLog(@"error from writing to %@ is %@", myURLString, [error localizedDescription]);
而且您可能对遇到的错误有更好的线索。
最后,通过您的评论,您已经明确表示您正在尝试将文件直接写入应用程序的捆绑包中。这是一个很大的(沙盒)没有。
代替:
NSURL *fileURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"h" ofType:@"txt"]];
改为这样做:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = [paths firstObject];
NSURL *fileURL = [NSURL fileURLWithPath:[basePath stringByAppendingString:@"/h.txt"]];
这会将您的文件保存到 Documents 目录中,该目录是保存文件的合法位置。
【讨论】:
它给了我:写入文件时出错:///Users/mji/Library/Application%20Support/iPhone%20Simulator/7.0-64/Applications/C48463FB-F7F0-47AD-A40A-958A3583C29E /active%20text.app/h.txt 是操作无法完成。 (可可错误 4。) 你不应该尝试写入应用程序的包,这是不允许的。 现在它给了我这个当我想保存 udid 到文件错误从写入 file:///Users/mji/Library/Application%20Support/iPhone%20Simulator/7.0-64/Applications/ C48463FB-F7F0-47AD-A40A-958A3583C29E/Documents/h.txt 为(空) 但在 NSLog 中对我说 h.text 是:null以上是关于将 udid 字符串保存到文本文件的主要内容,如果未能解决你的问题,请参考以下文章