将udid字符串保存到文本文件中

时间:2014-03-02 09:02:03

标签: ios objective-c save udid

嗨,我正在开发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 个答案:

答案 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 目录中,这是保存文件的合法位置。