DSUnixTask 0.1.1

DSUnixTask 0.1.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2014年12月

irrationalfab维护。



  • Fabio Pelosin

DSUnixTask是一个针对Mac OS X的库,允许您启动和使用看起来很棒的UNIX任务。

特性

  • 基于块的简单界面。
  • 实时处理标准输出和标准错误。
  • 轻松向标准输入发送消息。
  • 作为子进程或者通过XPC服务执行任务。
  • 在用户shell中执行任务。
  • 日志记录。

以子进程的方式运行一个任务

Podfile
pod 'DSUnixTask/Core'
用法
#import <DSUnixTaskSubProcessManager.h>

- (void)runTasfk {
  [[DSUnixTaskSubProcessManager sharedManager] setLoggingEnabled:TRUE];
  DSUnixTask *task = [DSUnixTaskSubProcessManager shellTask];
  [task setCommand:@"/bin/cat"];
  [task setStandardOutputHandler:^(DSUnixTask *task, NSString *output) {
    NSLog(@"%@", output);
  }];
  [task launch];
  [task writeStringToStandardInput:@"Hi!"];
}

XPC

XPC服务

为了创建XPC服务的目标

  1. 使用XPC服务模板。
  2. 向应用程序添加一个Copy Files构建阶段。
    • 目标位置: Wrapper
    • 子路径: Contents/XPCServices
    • 复制XPC服务产品
  3. 在XPC服务上添加对您应用程序构建阶段的依赖。
Podfile
target 'MyApp' do
  pod 'DSUnixTask/XPCClient'
end

target 'XPCservice' do
  pod 'DSUnixTask/XPCService'
end
用法
客户端
#import <DSUnixTaskXPCManager.h>

- (void)runTask {
  [[DSUnixTaskXPCManager sharedManager] setServiceBundleIdentifier:@"com.compary.xpc-bundle-name"];
  [[DSUnixTaskXPCManager sharedManager] setLoggingEnabled:TRUE];
  DSUnixTask *task = [DSUnixTaskSubProcessManager shellTask];
  [task setCommand:@"/bin/cat"];
  [task setStandardOutputHandler:^(DSUnixTask *task, NSString *output) {
    NSLog(@"%@", output);
  }];
  [task launch];
  [task writeStringToStandardInput:@"Hi!"];
}
服务
#include <Foundation/Foundation.h>
#import "DSUnixTaskServiceMain.h"

int main(int argc, const char *argv[]) {
  runUnixTaskXPCService();
}