system()
- это функция библиотеки C, которая принимает обычную строку C (char *
), а не NSString *
.
Вы можете преобразовать NSString
в строку C, используя что-то вроде [theASCommandLoginItem UTF8String]
Или вы можете использовать собственный способ запуска команд в Objective-C, например:
[NSTask launchedTaskWithLaunchPath:@"/usr/bin/osascript"
arguments:[NSArray arrayWithObjects:@"-e",
[NSString stringWithFormat:@"tell application \"System Events\" to make login item at end with properties {path:\"%@\"}", pathOfApp],
nil]];