NSTask

กรกฎาคม 3, 2008

ช่วงนี้ Cocoa มีแต่เรื่องง่ายๆแฮะ 

อธิบายแบบสั้นๆก็คือ NSTask เป็น Class ที่เอาไว้เรียกใช้คำสั่งต่างๆ ที่เป็น Binary อยู่แล้ว เช่นคำสั่งต่างๆ ที่เราเรียกใช้ใน Terminal ที่เป็น Command line นั่นแหละ

Input ของ NSTask มี 2 ส่วน คือ
1. ส่วนของ “คำสั่ง” ที่เราจะเรียกใช้ ต้องใส่เป็น Path เต็มของคำสั่งนั้น ว่ามันเก็บไว้ที่ไหน (ดูได้จากคำสั่ง which) และใส่เป็น String
2. ส่วนของ “Argument” ของคำสั่ง มี Argument อะไรบ้างก็รวมไว้เป็น Array

โค้ดตัวอย่าง ถ้าเราต้องการเรียกใช้คำสั่ง ls -l เพื่อดูว่ามีไฟล์อะไรอยู่ใน Folder เราบ้าง จะได้ดังนี้

NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"bin/ls"];
[task setArguments:[NSArray arrayWithObject:@"-l"]];
[task launch];

เท่านี้ ในหน้าจอ ก็จะแสดงผลเป็นไฟล์ทั้งหมดใน Folder ออกมา (ในหน้าจอ Debugger Console นะครับ) แล้วถ้าเราต้องการเอา Output ที่ได้มาต้องทำยังไง

ก่อนจะใช้คำสั่ง Launch ก็ตั้งเอาไว้ก่อนครับ ว่าให้มันเก็บ Output ไว้ตรงไหนด้วย

NSPipe *pipe = [NSPipe pipe];
[task setStandardOutput:pipe];

หลังจาก เรียกใช้คำสั่ง Launch แล้ว เราก็มาทำการดึง Output ที่ได้มาจาก NSPipe นั่นเอง

NSFileHandle *fileHandle = [[NSFileHandle alloc] init];
[pipe fileHandleForReading];
NSData *data = [[NSData alloc] initWithData:[fileHandle readDataToEndOfFile]];

เราก็จะได้ Output มาเก็บอยู่ในรูปแล้วถ้าอยากได้เป็น NSString ก็แปลงเอา จาก NSData เป็น NSString ซึ่งเคยเขียนเอาไว้แล้วนะครับ 

 

Entry Filed under: Cocoa Programming, Computer. ป้ายกำกับ: , .

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


สัตว์เลี้ยง

ไปเห็นในเวบบอร์ดมา อยากลองเอามาแปะเล่นๆดูมั่ง ผ่านเข้ามาก็แวะกดให้อาหารมันเล่นๆให้หน่อยก็แล้วกันนะครับ อิอิ


ให้อาหารหน่อยครับ คลิกที่นี่

อยากมีสัตว์เลี้ยงมั่ง คลิกเลย

Reading book

Beginning iPhone Development: Exploring the iPhone SDK

ใช้หัวคิด

Post Calendar

กรกฎาคม 2008
พฤ อา
« มิ.ย.   ส.ค. »
 123456
78910111213
14151617181920
21222324252627
28293031  

New Coming Post

หมวดหมู่

Blogroll

Mac & iPhone Dev Useful Link

ป้ายกำกับ