嗨,我正在开发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);
}
}
答案 0 :(得分:0)
您的代码存在一些问题。从:
开始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 目录中,这是保存文件的合法位置。