-1

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

我正在制作mac应用程序。我保存 plist

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

2 回答 2

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 并将您的字符串保存为带有一些适当键的值。

于 2013-08-08T22:29:12.683 回答
1

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

字面答案:

您可以使用NSBundle以下内容获取应用程序包中资源文件夹的路径:

[[NSBundle mainBundle] resourcePath]

resources 文件夹是应用程序资源(例如 plist)的存放位置。一般来说,您应该将您的应用程序包视为只读的,但如果您想破解,这是一个不错的选择。

于 2013-08-08T22:58:05.233 回答