2013-07-31 17 views
17

Bunun için günler ve saatler aradım, bunun birçok örneğini görmüştüm, ancak NSTask'un nasıl çalıştığını anlayamıyorum. killall Dock veya defaults write com.apple.Finder AppleShowAllFiles YES gibi bir komut, böyle bir şeyi nasıl yapacağım.NSTask - Objective-C Cocoa ile kabuk komutları yürütme

Dış kabuk komut dosyasını (sh) nasıl uygulayacağımı biliyorum, ancak daha karmaşık olması ve bunun yerine NSTask kullanması gerekiyor.

Yardımlarınız için teşekkürler!

cevap

25

Sen gibi bir şey yapabileceğini:

fırlatma yolu ve sağladığınız argümanlar çalıştırmak istediğiniz komutu ve parametreleri tarafından dikte edilir Tam olarak ne
NSTask *task = [[NSTask alloc] init]; 
[task setLaunchPath:@"/bin/bash"]; 
[task setArguments:@[ @"-c", @"/usr/bin/killall Dock" ]]; 
[task launch]; 

.

+0

Cevabınız için teşekkürler!, Farklı komutlar için hangi başlatma yoluna ihtiyacım olduğunu nasıl öğrenebilirim? – Ryan

+1

Örneğim, bir komut satırı çalıştırıyor ve çalıştırıyor; çünkü bu komutu ve parametreleri bu şekilde sağlamak genellikle daha kolaydır. Ayrıca çalıştırmak istediğiniz unix yürütülebilir Hyatt yolunu da geçebilirsiniz. – Wain

+0

Çok teşekkürler, bana çok yardımcı oldunuz! – Ryan

İlgili konular