首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Cocoa中接收NSTask的输出?

在Cocoa中接收NSTask的输出,可以通过以下步骤实现:

  1. 导入Foundation框架:
代码语言:swift
复制
import Foundation
  1. 创建一个NSTask实例:
代码语言:swift
复制
let task = NSTask()
  1. 设置NSTask的launchPath属性,指定要执行的命令:
代码语言:swift
复制
task.launchPath = "/usr/bin/ls"
  1. 设置NSTask的arguments属性,指定命令的参数:
代码语言:swift
复制
task.arguments = ["-l"]
  1. 创建一个管道(Pipe)对象,用于接收NSTask的输出:
代码语言:swift
复制
let pipe = NSPipe()
  1. 将管道的文件描述符设置为NSTask的标准输出:
代码语言:swift
复制
task.standardOutput = pipe
  1. 创建一个文件句柄(FileHandle),用于读取管道中的数据:
代码语言:swift
复制
let fileHandle = pipe.fileHandleForReading
  1. 读取管道中的数据,并将其转换为字符串:
代码语言:swift
复制
let data = fileHandle.readDataToEndOfFile()
let output = String(data: data, encoding: NSUTF8StringEncoding)
  1. 启动NSTask:
代码语言:swift
复制
task.launch()
  1. 等待NSTask执行完毕:
代码语言:swift
复制
task.waitUntilExit()
  1. 输出NSTask的结果:
代码语言:swift
复制
print(output)

完整的示例代码如下:

代码语言:swift
复制
import Foundation

let task = NSTask()
task.launchPath = "/usr/bin/ls"
task.arguments = ["-l"]

let pipe = NSPipe()
task.standardOutput = pipe

let fileHandle = pipe.fileHandleForReading

task.launch()

let data = fileHandle.readDataToEndOfFile()
let output = String(data: data, encoding: NSUTF8StringEncoding)

task.waitUntilExit()

print(output)

以上代码示例展示了如何在Cocoa中接收NSTask的输出。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在keras添加自己优化器(adam等)

2、找到keras在tensorflow下根目录 需要特别注意是找到keras在tensorflow下根目录而不是找到keras根目录。...一般来说,完成tensorflow以及keras配置后即可在tensorflow目录下python目录中找到keras目录,以GPU为例keras在tensorflow下根目录为C:\ProgramData...找到optimizers.pyadam等优化器类并在后面添加自己优化器类 以本文来说,我在第718行添加如下代码 @tf_export('keras.optimizers.adamsss') class...# 传入优化器名称: 默认参数将被采用 model.compile(loss=’mean_squared_error’, optimizer=’sgd’) 以上这篇如何在keras添加自己优化器...(adam等)就是小编分享给大家全部内容了,希望能给大家一个参考。

45K30

Mac OSX 开发入门基础系列之NSTask

Task(图片来自网络) 利用NSTask,我们可以在应用调用外部程序或脚本并获得它<执行状态和结果 NSTask最为常用一个场景是为命令行操作提供图形化界面 1....NSTask 在Swift 与Objective-C不同 Objective-C, 是NSTask类 Swift , 是Process类 3....关于OSX沙盒机制,推荐学习这篇文档[Cocoa开发之沙盒机制及访问Sandbox之外文件 推荐文档补充说明: 永久访问用户授权url,可以不必在.entitlements文件填写对应...小结 NSTask为我们提供了可以在一个应用,调用另一个应用<可能.其中比较普遍一个使用场景是我们可以在自己App,调用强大Shell命令,或者执行自己写脚本来实现一些辅助功能 NSPipe...用来辅助我们获取NSTask输出结果,用来展示UI信息 8.

2.2K40
  • iOS学习——iOS 整体框架及类继承框架图

    Accounts账户框架,广告框架,数据存储框架,网络连接框架,地理位置框架,运动框架等等。...iOSCocoa众多框架中最重要最基本两个框架是:Foundation 和 UIKit。...因此,这两天得闲就对这一块进行整理和学习,对Cocoa框架最重要Foundation 和 UIKit框架类继承体系进行了梳理。...框架入口: #import   ,当引入此头文件后,便可以在程序里使用任何在UIKit里声明类。(PS: 当然还要把这个框架链接到你应用程序)。...后者用于测试接收者是否为指定类实例。isSubclassOfClass:类方法则用于测试类继承性。 respondsToSelector:方法用于测试接收者是否实现由选择器参数标识方法。

    3.5K70

    iOSCocoa框架·Runtime及isa指针知识·填坑

    是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发你可以使用各种语言;也不是开发工具,你可以在命令行上就可以创建Cocoa程序。...1.1、Cocoa框架 iOSCocoa众多框架中最重要最基本两个框架是:Foundation 和 UIKit。...通过NSTask,您程序可以分出 一个子进程来执行其它工作或进行进度监控。...description方法允许对象返回一个内容描述字符串;这个方法输出经常用于调试(“print object”命令),以及在格式化字符串中和“%@”指示符一起表示对象。...2.5 Cocoa对象生命周期 对象四种内存管理方式,如下图所示 对象生命周期—简化视图 ? 1350871223_8473.gif 保持接收对象 ?

    98320

    何在父进程读取子(外部)进程标准输出和标准错误输出结果

    最近接手一个小项目,要求使用谷歌aapt.exe获取apk软件包信息。依稀记得去年年中时,有个同事也问过我如何获取被调用进程输出结果,当时还研究了一番,只是没有做整理。...这个问题,从微软以为为我们考虑过了,我们可以从一个API可以找到一些端倪——CreateProcess。...这个API参数非常多,我想我们工程对CreateProcess调用可能就关注于程序路径(lpApplicationName),或者命令行(lpCommandLine)。...这三个参数似乎就点中了标题中两个关键字“标准输出”、“标准错误输出”。是的!我们正是靠这几个参数来解决我们所遇到问题。那么如何使用这些参数呢?         我们选用还是老方法——管道。...我们使用STARTF_USESTDHANDLES原因是:我们使用了标准输出和标准错误输出句柄。

    3.9K10

    .NETC# 程序如何在控制台终端以字符表格形式输出数据

    在一篇在控制台窗口中监听前台窗口博客,我在控制台里以表格形式输出了每一个前台窗口信息。在控制台里编写一个字符表格其实并不难,毕竟 ASCII 中就已经提供了制表符。...开源 这个类库我已经开源到我 GitHub 仓库,并可直接以 NuGet 形式引用。...// 当前前台窗口变化时,输出前台窗口信息。...关于表格输出完整使用示例,可参考我监听前台窗口博客,或直接查看我 GitHub 仓库示例代码。...如何在控制台程序监听 Windows 前台窗口变化 - walterlv Walterlv.Packages/src/Utils/Walterlv.Console 参考资料 D 个人博客 本文会经常更新

    43530

    关于编程语言OC之9个基础知识点

    这是《给自己一份自学IOS开发学习清单》《关于编程语言OC》读书笔记系列第1篇。 入门务必记住这9点。...1、MAC操作系统上整个开发环境成为CocoaCocoa开发语言是Objective-C,开发工具是Xcode 我以前搞不懂CocoaChina为何叫Cocoa,原来是因为Cocoa是Mac开发环境...还有叫cocos游戏引擎,Cocos是由触控科技推出游戏开发一站式解决方案。可以通过cocos快速生成代码、编辑资源和动画,最终输出适合于多个平台游戏产品。...: Car *car=[[Car alloc]init]; 8、oc方法调用:也称为给这个类或者实例发消息,类或者实例被称为“接收方”,oc允许在一个方法调用嵌套另一个方法调用 记住格式:方括号[...] [实例 方法]; 或 [类名 方法名]; 完整方法调用格式: [接收方 名字1:参数1 名字2:参数2,...]

    1K80

    何在 Linux 命令行优雅格式化输出 xml,记住这三种方法!

    但是在使用之前,需要手动安装,如下所示:sudo snap install xmlstarlet要格式化输出 xml,需要使用 xml 命令 format 选项,如下所示:xml format email.xml...图片另外,它还提供了一些其他选项,如下:-n 不添加空格,结果类似于文本向左对齐;-t 使用 tab 键输出以提高可读性;-o 省略 xml 生命,除了在文件顶部添加 \<\?...比如,我们使用 fo 添加 6 个空格来格式化输出 xml 文件:xml fo -s 6 email.xml图片方法3:使用 xml_pp 命令这个方法不是很灵活,因为 xml_pp 是 Perl 一个模块...它不会输出内容,但是会直接修改源文件。它在使用之前,同样需要手动安装。...如果你使用是基于 Debian 系统,可使用如下命令:sudo apt install xml-twig-tools比如,我们使用 record 模式来格式化输出 email.xml:图片这里,-i

    3K00

    开心档之Swift基本语法

    如果创建是 OS X playground 需要引入 Cocoa : import Cocoa /* 我第一个 Swift 程序 */ var myString = "Hello, World!"...Cocoa 本身由 Objective-C 语言写成,Objective-C 又是 C 语言严格超集,所以在 Swift 应用我们可以很简单混入 C 语言代码,甚至是 C++ 代码。...**注意:**Swift字母采用是Unicode编码[1]。...Unicode叫做统一编码制,它包含了亚洲文字编码,中文、日文、韩文等字符,甚至是我们在聊天工具中使用表情符号 如果一定要使用关键字作为标识符,可以在关键字前后添加重音符号(`),例如: let `...") } print() 输出结果为: 0 1 2 3 4 5 6 7 8 9 10 如果你需要接收用户输入可以使用 readLine(): let theInput = readLine()

    89620

    ReactiveCocoa(一)

    前言 之前总听别人说什么Reactive Cocoa + MVVM,但是没有找到讲解Reactive Cocoa相关资料。...Reactive Cocoa简介 Reactive Cocoa(简称RAC,PS:不是ARC(自动引用计数)),是由Github开源一个应用于iOS和OS开发新框架,cocoa是苹果整套框架简称,...Reactive Cocoa作用 在我们iOS开发,当某些事件响应时候,需要处理某些业务逻辑,这些事情都以不同方式来处理。...: add(1).add(2).add(3) 链式编程特点: 方法返回值是block,block必须有返回值(对象本身),block参数就是我们要操作值 代表作: masonry框架 模仿masonry...// 4.RACCommand需要被强引用,否则接收不到RACCommand信号,因此RACCommand信号是延迟发送

    81270

    ReactiveCocoa(一)

    前言 之前总听别人说什么Reactive Cocoa + MVVM,但是没有找到讲解Reactive Cocoa相关资料。...Reactive Cocoa简介 Reactive Cocoa(简称RAC,PS:不是ARC(自动引用计数)),是由Github开源一个应用于iOS和OS开发新框架,cocoa是苹果整套框架简称,...Reactive Cocoa作用 在我们iOS开发,当某些事件响应时候,需要处理某些业务逻辑,这些事情都以不同方式来处理。...: add(1).add(2).add(3) 链式编程特点: 方法返回值是block,block必须有返回值(对象本身),block参数就是我们要操作值 代表作: masonry框架 模仿masonry...// 4.RACCommand需要被强引用,否则接收不到RACCommand信号,因此RACCommand信号是延迟发送

    44230

    iOS程序员面试,绝对会遇到这些问题!

    能否描述一下如何在应用中使用Apple Pay? 请解释一下iOS应用沙盒机制。 VoiceOver是什么?请举例解释一下iOS辅助功能(Accessibility)。开发者如何使用这些功能?...iOS应用是如何实现后台多任务处理(Multitasking)? Game Center针对iOS游戏有哪些功能? iBeacons是什么? Cocoa/Cocoa Touch是什么?...AppDelegate扮演着什么样角色? 请解释一下NSUserDefaults。就你而言,你会如何在磁盘对数组对象进行序列化? 你会如何储存用户认证信息? 请问何为Keychain服务?...这对注重性能应用有何限制? 关于编程 Cocoa Touch包含什么?不包含什么? 为什么Cocoa Touch类名称是以两个大写字母开头? Swift和Objective-C分别是什么?...如果在Cocoa中发现一个Bug,你会如何处理? 如果应用新版本出现了Regression情况,该如何补救?如何防止用户在使用过程遇到新Bug? Objective-C类是怎么执行

    1.4K20

    六个方向关于iOS100个面试题,你都会了吗?

    能否描述一下如何在应用中使用Apple Pay? 请解释一下iOS应用沙盒机制。 VoiceOver是什么?请举例解释一下iOS辅助功能(Accessibility)。开发者如何使用这些功能?...iOS应用是如何实现后台多任务处理(Multitasking)? Game Center针对iOS游戏有哪些功能? iBeacons是什么? Cocoa/Cocoa Touch是什么?...AppDelegate扮演着什么样角色? 请解释一下NSUserDefaults。就你而言,你会如何在磁盘对数组对象进行序列化? 你会如何储存用户认证信息? 请问何为Keychain服务?...这对注重性能应用有何限制? 关于编程 Cocoa Touch包含什么?不包含什么? 为什么Cocoa Touch类名称是以两个大写字母开头? Swift和Objective-C分别是什么?...如果在Cocoa中发现一个Bug,你会如何处理? 如果应用新版本出现了Regression情况,该如何补救?如何防止用户在使用过程遇到新Bug? Objective-C类是怎么执行

    3.6K50

    100个iOS开发面试题汇总

    能否列举一些热门或常见范例? 14.HealthKit是什么? 15.HomeKit是什么? 16.Apple Pay是什么?能否描述一下如何在应用中使用Apple Pay?...28 AppDelegate扮演着什么样角色? 29 请解释一下NSUserDefaults。就你而言,你会如何在磁盘对数组对象进行序列化? 30 你会如何储存用户认证信息?...换做是你,你会如何通过编程提高应用实用性以及演示效果? 35 传感器,IO以及WiFi、拨号等连接方式如何在iOS平台上运作?它们有何利用价值?请扼要地谈谈你观点。...这对注重性能应用有何限制?  关于编程 37 Cocoa Touch包含什么?不包含什么? 38 为什么Cocoa Touch类名称是以两个大写字母开头?...46 如果在Cocoa中发现一个Bug,你会如何处理? 47 如果应用新版本出现了Regression情况,该如何补救?如何防止用户在使用过程遇到新Bug?

    1.3K30

    NSThread官方文档

    推荐在主线程去接收用户相关事件和初始化UI。 留意在退出时线程行为:进程只有在非分派线程退出时才会停止。...在使 * 用Cocoa library时,最好注册一个观察者接收NSwillBecomMuliThreadedNotification,这样就在application变成多线程时接收到了通知。...在Cocoa下,你可以使用NSThread对象threadDictionary方法去接收一个NSMutableDictionary对象,理论上就可以给thread添加任何keys了。...Runloop接收两种不同类型源,一种是Input source,传递异步事件,接收自完全不同application或者其它thread;另一种是Timer source,传递同步事件,在一个计划好时间或者重复...有几种方法可以start一个run loop,包括: 无条件 设置一个时间限制 在特殊mode 无条件运行你run loop指的是将thread放到一个永恒loop,你会获得非常有限控制

    2.1K30
    领券