سؤال

وأنا newbe الهدف-ج، وأنا أتساءل كيف لتشغيل برنامج نصي قذيفة في الهدف جيم أسهل طريقة ممكنة. أنا لا يهمني أي من الإخراج. لقد حاولت النظام ()، إكسيك () وexecl () وNSTask. هذه الأساليب لا تعمل لسبب ما ... وهذا هو السيناريو قذيفة أحاول لتشغيل:

"mount_webdav http://idisk.mac.com/idisk_username/ /Volumes/idisk_username"

و(تصاعد أساسا بلدي iDisk). أيضا، لا كلمة السر صناديق أو أي إشارة من البرامج تعمل عليه. انها ستعمل في ابليسكريبت، ولقد خلق الدليل جبل نقطة. أي من الأساليب المذكورة أعلاه القيام بأي شيء على الإطلاق، أو تعطل التطبيق لسبب غريب.

هل كانت مفيدة؟

المحلول

وNSTask تزود كل ما تحتاجه. هذا يجب أن تعمل:

NSArray *args=[NSArray arrayWithObjects:@"http://idisk.mac.com/idisk_username/",@"/Volumes/idisk_username",nil];
NSTask *mountTask=[[NSTask alloc] init];
[mountTask setLaunchPath:@"/sbin/mount_webdav"];
[mountTask launch];

واختبار كل مسار القيادة كاملة وسائط من سطر الأوامر أولا. أنا لم تستخدم mount_webdav ولكن أعتقد أنه يتطلب المزيد من وسائط من التي قمت بتوفيرها.

نصائح أخرى

لا تستخدم البرامج النصية قذيفة عند يمكن أن تساعد في ذلك. انهم وسيلة جيدة لتقديم البق خطيرة عند بالحدود النص (على سبيل المثال، mount_webdav %@ %@).

وبدلا من ذلك، استخدم إما NSTask، fork / exec مباشرة، أو (في بايثون) وحدة فرعي أو جانبي. عليك أن تمر الحجج الثلاث باعتبارها مجموعة، بدلا من أن تكون سلسلة واحدة.

سوف

وNSTask تكون وسيلة للقيام بذلك في الكاكاو. قد ترغب في الذهاب على التعليمات البرمجية الخاصة بك مرة أخرى، تقرأ على وثائق لأنها (كما ننظر إلى نموذج التعليمات البرمجية هناك)، والأسئلة ظيفة محددة حول استخدامه هنا إذا واجهت مشاكل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top