将plist保存到程序目录中

时间:2013-08-08 22:28:16

标签: objective-c plist

我需要将.plist文件保存为不是文档,而是保存到程序的核心。 例如我的程序名为“123”,如果我保存数据,然后将我的应用程序发送给我的朋友,他打开这个应用程序,他可以看到保存的数据,无论他把这个程序放在哪里。我找不到解决这个问题的方法,请帮帮我。

我正在制作mac app。 我用

保存plist
 [NSKeyedArchiver archiveRootObject:FBCover1.text= 
 [NSString stringWithFormat:@"%@",Cover1.attributedStringValue]
 toFile:@"/Users/admin/FBCover1.plist"];

2 个答案:

答案 0 :(得分:2)

一般回答:

如果你想在iPhone上做这个(你没有为iOS或MacOS标记这个),这不会起作用,因为这会破坏你的代码签名。

如果您在MacOS上执行此操作并且正在使用代码签名,则会遇到同样的问题。

可能存在可以保存和共享数据的地方,例如Game Center或DropBox或Box或其他一些云存储机制,但您需要选择并使用其他一些API或框架。

仅适合您的具体答案:

而不是:

[NSKeyedArchiver archiveRootObject:FBCover1.text=[NSString stringWithFormat:@"%@",Cover1.attributedStringValue] toFile:@"/Users/admin/FBCover1.plist"];

哪个大而丑,我不知道它在做什么,为什么不这样保存你的字符串?

NSString * stringToSave = [NSString stringWithFormat:@"%@",Cover1.attributedStringValue];
if(stringToSave)
{
    NSError * error = nil;
    BOOL success = [stringToSave writeToFile: @"/Users/admin/FBCovert1.txt" atomically: YES encoding: NSUTF8StringEncoding error: @error];
    if(!success)
    {
        NSLog( @"error in saving - %@", [error localizedDescription]);
    }
}

这会将原始字符串保存到文件中。

如果你想把它作为一个plist,那么创建一个NSDictionary并使用一些适当的密钥将你的字符串保存为值。

答案 1 :(得分:1)

序言:这是一个糟糕的主意。您应该做的是创建一个基于文档的应用程序并向后和向前传递您的文档。

字面答案:

您可以使用NSBundle获取应用包中资源文件夹的路径,例如:

[[NSBundle mainBundle] resourcePath]

资源文件夹是应用程序资源(如plist)的用途。你应该认为你的应用程序包通常是只读的,但是如果你想要破解那么这是一个很好的选择。