Objective c 在plist中保存到程序目录

Objective c 在plist中保存到程序目录,objective-c,plist,Objective C,Plist,我需要保存一个.plist文件,不是保存到文档,而是保存到程序的核心。 例如,我的程序名为“123”,如果我保存数据,然后将我的应用程序发送给我的朋友,他打开这个应用程序,他可以看到保存的数据,无论他把这个程序放在哪里。我找不到解决这个问题的办法,请帮帮我 我正在制作mac应用程序。 我用它来拯救普利斯特 [NSKeyedArchiver archiveRootObject:FBCover1.text= [NSString stringWithFormat:@"%@",Cover1.att

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

我正在制作mac应用程序。 我用它来拯救普利斯特

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

如果您试图在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,并使用适当的键将字符串保存为值。

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

字面回答:

您可以使用
NSBundle
获取应用程序包中资源文件夹的路径,如下所示:

[[NSBundle mainBundle] resourcePath]

resources文件夹是应用程序资源(如plists)的存放位置。一般来说,你应该把你的应用程序包看作是只读的,但是如果你想破解它,这是一个很好的选择。

将信息添加到问题中。“<代码>。PLIST < /代码>”文件进入一个名为“<代码>管理> <代码> >的用户的主文件夹,这不是程序的核心。您的朋友是否也有名为“
admin
”的帐户?您的MacOS是否将进行代码签名?不,它不会被签名。在我的情况下,现在我使用此路径进行测试,但这就是重点,我想更改它。使用应用程序支持文件夹子文件夹。(如果不存在,则创建它)“应用程序支持”不会(轻松地)在计算机之间传输,@uchuugakaNo比应用程序包更容易也更难。你的观点是什么?如果需要更新数据,请在提供的适当位置更新数据。如果您需要更新应用程序,请正确地进行更新。代号。如果你不这么做,你会讨厌你的用户和客户,因为你根本不关心安全性,你想成为一个攻击向量。