gpt4 book ai didi

objective-c - 如何在 Xcode 中正确布局独立的系统服务?

转载 作者:行者123 更新时间:2023-12-03 16:25:05 24 4
gpt4 key购买 nike

我最近对为 OS X 编写一些系统服务感兴趣,但由于我没有应用程序来宣传这些服务,所以我必须编写独立的系统服务。 Apple 关于系统服务的文档确实很简洁,但关于独立服务的文档却不存在。

到目前为止,我拥有的是一个从 bundle 构建的 Xcode 项目,其中包含两个源 HashifyService.hHashifyService.m。这是我的测试代码:

- (void) doServiceWork:(NSPasteboard *)pboard
userData:(NSString *)userData
error:(NSString **)error {
NSLog(@"Actually in the service now");
NSString *pboardString;
NSArray *types;

NSLog(@"do test magic service! (pboard: %@, types: %@)", pboard, [pboard types]);


NSString* outputString = @"It Worked";
types = [NSArray arrayWithObject:NSStringPboardType];
[pboard declareTypes:types owner:nil];
[pboard setString:outputString forType:NSStringPboardType];
[outputString release];
return;
}

这是我的 Info.plist 中的 NSServices 条目:

<dict>
<key>NSMenuItem</key>
<dict>
<key>Menu item title</key>
<string>HashifyTest</string>
</dict>
<key>NSMessage</key>
<string>doServiceWork</string>
<key>NSPortName</key>
<string>HashifyService</string>
<key>NSReturnTypes</key>
<array>
<string>NSStringPboardType</string>
</array>
<key>NSSendTypes</key>
<array>
<string>NSStringPboardType</string>
</array>
</dict>

然后,我构建服务包并将其放置在 ~/Library/Services/ 中,在该位置它会被正确检测到,并且我可以选择使用该服务。然而,激活服务后,会发生错误并记录到控制台:

..../Hashify.service/Contents/MacOS/Hashify: cannot execute binary file 

我做错了什么?

最佳答案

您需要一个 main() 函数。这应该使用 NSRegisterServicesProvider() 注册服务并进入运行循环。那是the documentation .

关于objective-c - 如何在 Xcode 中正确布局独立的系统服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/866621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com