试图使用Cydia库。越狱后的苹果手机上的NSTask崩溃,出现分段故障:11[英] Trying to use cydia libraries: NSTask on Jailbroken iphone crashes with Segmentation fault: 11

本文是小编为大家收集整理的关于试图使用Cydia库。越狱后的苹果手机上的NSTask崩溃,出现分段故障:11的处理方法,想解了试图使用Cydia库。越狱后的苹果手机上的NSTask崩溃,出现分段故障:11的问题怎么解决?试图使用Cydia库。越狱后的苹果手机上的NSTask崩溃,出现分段故障:11问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我想从带有图标的 GUI 应用程序运行 dpkg(或/bin 或/usr/bin 目录中来自 cydia 的任何其他二进制库文件),例如 mobileterminal、ifile、myfile、cydia、alertscript 等等其他人可以.他们如何访问图书馆?此代码有效,进程的标准输出打印在 nslog 中,但随后它立即因分段错误而崩溃:11.这是在我的 viewdidload 函数中.这不会发生在模拟器中,只有我的 iPhone 4.很奇怪.已尝试以移动设备和 root 身份运行.该应用程序位于/Applications 文件夹下.这是我的代码.

编辑:我正在使用 xcode 的雪豹版本,并且刚刚更新为 lion,但我认为这可能不是问题?我的 iPhone 是 ios5.0.1.我测试时会发布.

NSString * workingdir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSTask * nstaskvar=[NSTask new];//note the NSTask.h file included! 
    NSPipe * outputPipe = [NSPipe pipe];

    [nstaskvar setLaunchPath:@"/bin/ls"];

    [nstaskvar setArguments:[NSArray arrayWithObjects:@"/usr",nil]];
    [nstaskvar setCurrentDirectoryPath:workingdir];

    [nstaskvar setStandardOutput:outputPipe];
    [nstaskvar setStandardInput:[NSPipe pipe]];

    [nstaskvar launch];

    NSString * outputstring = [[[NSString alloc] initWithData:[[outputPipe fileHandleForReading] readDataToEndOfFile] encoding:NSUTF8StringEncoding] autorelease];//readDataToEndOfFile reads until file is closed, which happens when process exits :) (i couldnt get waitUntilExit to work)
NSLog(@"%@", outputstring);



    [nstaskvar release];
    [outputPipe release];

推荐答案

解决了!在我升级到 xcode 4.3.2(lion 版本)后,模拟器因 exc_bad_access 而崩溃,所以我启用了僵尸,发现是最后两行 [nstaskvar release]; [outputPipe release]; 导致了问题.

我将它们都禁用了,然后它就消失了,现在在我的 iphone 上运行良好:D.

本文地址:https://www.itbaoku.cn/post/1793821.html