IOS 把shell信息或者NSlog输出信息 显示在视图

//标准输出

[self redirectSTD:STDOUT_FILENO];

//错误输出

//[self redirectSTD:STDERR_FILENO];

- (void)redirectNotificationHandle:(NSNotification *)nf{

NSData *data = [[nf userInfo] objectForKey:NSFileHandleNotificationDataItem];

NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

if (![str isEqualToString:@""]) {

textView.text = [NSString stringWithFormat:@"%@\n%@",textView.text, str];

NSRange range;

range.location = [textView.text length] - 1;

range.length = 0;

[textView scrollRangeToVisible:range];

}

[[nf object] readInBackgroundAndNotify];

}

- (void)redirectSTD:(int )fd{

NSPipe * pipe = [NSPipe pipe] ;

NSFileHandle *pipeReadHandle = [pipe fileHandleForReading] ;

dup2([[pipe fileHandleForWriting] fileDescriptor], fd) ;

[[NSNotificationCenter defaultCenter] addObserver:self

selector:@selector(redirectNotificationHandle:)

name:NSFileHandleReadCompletionNotification

object:pipeReadHandle] ;

[pipeReadHandle readInBackgroundAndNotify];

}

时间: 2024-11-08 15:11:08

IOS 把shell信息或者NSlog输出信息 显示在视图的相关文章

Java实践-远程调用Shell脚本并获取输出信息

1.添加依赖 <dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>ganymed-ssh2</artifactId> <version>262</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId&g

IOS调试—断点调试以及动态输出

在开发App的过程中.须要重复的改动和优化我们的代码,特别是当程序出现bug,须要高速的找出错误的原因,进行改动,以保证程序的正确运行. 断点调试,是最经常使用最简单的一种调试方式,能够一步步跟踪程序运行的流程,得到变量的值,高速的找到错误的原因. 1.断点的基本操作 断点的操作很easy,以下通过几张图来介绍一下怎样加入.删除.编辑以及使用断点. 2.全局断点 设置全局断点(异常断点).当遇到错误,Debug程序会自己主动定位到栈底信息,即跳到出错代码所在行. 3.条件断点 设置条件断点.当满

IOS中(Xcode) DEBUG模式(RELEASE模式)控制NSLog输出,NSLog两种不同情况的输出方式

[新年新气象,2016/01/04] 俺们在开发IOS程序过程中,经常需要用到NSLog输出一些信息,甚至有的开发过程,必须在控制台查看输出,有经验的程序员通过控制台输出就能知道整个数据交互的一个流程.但是一个发布的程序,里面带有太多的NSLog输出,肯定对于App性能有所影响,这时候我们可以使用一个宏定义来处理,在开发的时候使用DEBUG模式,在发布的时候使用RELEASE模式.这样,发布的App就不会在程序内部做大量的NSLog输出了

iOS开发项目篇—20存储账号信息

iOS开发项目篇—20存储账号信息 一.简单说明 1.不论请求是否成功,都在发送Post请求后,隐藏遮罩. 2.在授权成功后,切换根控制器. (1)说明 切换到控制器有几种情况,要么是切换到新特性,要么是切换到“首页”. 没有必要每次进入程序都需要登录,且每次返回的数据都是一样的,所以只需要把拿到的信息保存到沙盒里就可以了. 判断上次有没有登录成功(把拿到的access_token保存到沙盒中,如果沙盒中有access_token,说明上次登录成功),如果上次登陆成功,那么就判断是否要进入新特性

iOS开发项目篇—34获取用户信息

iOS开发项目篇—34获取用户信息 一.简单说明 需求:获取当前用户的昵称 ,需要获取当前登录用户的个人信息. 查看接口 要求传递的参数 这里要获取的时用户的昵称(所以使用用户id作为参数传入) 二.实现代码 1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 5 //设置导航栏内容 6 [self setupNavBar]; 7 8 //集成刷新控件 9 [self setupRefresh]; 10 11 //设置用户的昵称为标题 12 [s

创建Vue.js对象:我的第一个Vue.js输出信息

<!DOCTYPE html><html><head><meta charset=”utf-8″><title>Vue第一条信息</title><script src=”js/vue.js”></script></head><body><div id=”app”><p>{{ message }}</p></div> <script&g

shell脚本,提示用户输入一个用户名,如果存在;显示用户UID和SHELL信息;否则,则显示无此用户;显示完成之后,提示用户再次输入;如果是quit则退出;

[[email protected] wyb]# cat tishiuser.sh #!/bin/bash #提示用户输入一个用户名,如果存在:显示用户UID和SHELL信息:否则, #则显示无此用户:显示完成之后,提示用户再次输入:如果是quit则退出; echo 'Input `quit` to quit' while : do read -p "Please Input a user:" choice [ -z $choice ] &&continue [[ &q

【转】MFC中调试过程中查看输出信息 -- 不错

原文网址:http://blog.sina.com.cn/s/blog_4e24d9c501014o39.html 笔记&&方便查阅. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ios 使用xcode调试代码的时候进入断点显示变量全是nil,但NSLog输出那个变量却是有值的

解决办法:把1删掉 2选择debug模式 ios 使用xcode调试代码的时候进入断点显示变量全是nil,但NSLog输出那个变量却是有值的,布布扣,bubuko.com