将 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 字符串保存到文本文件的主要内容,如果未能解决你的问题,请参考以下文章

Java将多行字符串保存到文本文件

csharp 将字符串保存到文本文件

将richtextbox保存到文本文件(记事本)

如何使用 SaveFileDialog 将字符串生成器的内容保存到文本文件?

C ++将结构中的字符串保存到文本文件中

是否可以将 16 位二进制数转换为两个字符并将其保存到文本文件中?