Objective c 目标-C、NSFileManager和授权?

Objective c 目标-C、NSFileManager和授权?,objective-c,authorization,nsfilemanager,Objective C,Authorization,Nsfilemanager,我有一个应用程序需要复制、删除、修改库/应用程序支持目录中的文件,并将writeToFile:atomically写入这些文件。问题是,我必须获得此类活动的授权,而且似乎没有任何直接的方法来实现这一点。我读过很多书,也尝试过;不幸的是,它们似乎都是使用特权助手工具来处理问题,往往与使用NSTask的命令行函数更为相关,或者它们根本不起作用。下面是我想做的一个快速示例: NSFileManager *fileManager = [[NSFileManager alloc] init]; if (

我有一个应用程序需要复制、删除、修改库/应用程序支持目录中的文件,并将
writeToFile:atomically
写入这些文件。问题是,我必须获得此类活动的授权,而且似乎没有任何直接的方法来实现这一点。我读过很多书,也尝试过;不幸的是,它们似乎都是使用特权助手工具来处理问题,往往与使用NSTask的命令行函数更为相关,或者它们根本不起作用。下面是我想做的一个快速示例:

NSFileManager *fileManager = [[NSFileManager alloc] init];

if ([fileManager fileExistsAtPath:sourceFile]) {

  NSError *error = nil;
  if (![fileManager copyItemAtPath:sourceFile
                            toPath:destFile
                             error:&error]) {
    // Deal with error
  }
}

[fileManager release];

这是我想做的非常简单的事情,为什么仅仅访问某些目录中的数据就显得如此困难呢?如果有人能提供这样做的示例或适用方法,我们将不胜感激-谢谢。

Unix安全模型的一部分是,进程不能获得比创建时更多的特权。因此,授权特权操作需要以特权启动新进程,而不是简单地获取当前进程的特权



更新:苹果公司推荐的技术使用了
smjobbles()
,并通过以下示例代码演示:

Unix安全模型的一部分是进程不能获得比创建时更多的特权。因此,授权特权操作需要以特权启动新进程,而不是简单地获取当前进程的特权


更新:苹果推荐的技术使用了
smjobbles()
,并通过以下示例代码演示: