我正在使用库STPrivilegedTask库,该库位于http://www.sveinbjorn.org/STPrivilegedTask,可使用sudo权限运行NSTask。

这是我用来实例化STPrivilegedTask对象的代码,但出现语法错误:

STPrivilegedTask *task2 = [[STPrivilegedTask alloc] initWithLaunchPath: launchPath: arguments];

我收到“实例方法的接收器类型STPrivilegedTask没有声明方法...”错误。上面的语法有效吗?

谢谢,

最佳答案

不是Objective-C的专家,但是如果我没记错的话,您应该这样称呼它:

STPrivilegedTask *task2 = [[STPrivilegedTask alloc] initWithLaunchPath: launchPath
arguments:arguments];


(假设方法中的arguments是您的NSArray),因为该方法的声明为:

- (id)initWithLaunchPath: (NSString *)path arguments:  (NSArray *)args;
                                           ^^^ Part of the method signature


并不是

- (id)initWithLaunchPath: (NSString *)path :  (NSArray *)args;


这是您添加的链接中的.m文件中的示例:

STPrivilegedTask *task = [[[STPrivilegedTask alloc] initWithLaunchPath: path arguments: args] autorelease];

09-10 00:40