【问题标题】:ViewDidLoad What is falseViewDidLoad 什么是假的
【发布时间】:2012-09-09 23:31:24
【问题描述】:

你能告诉我这段代码有什么错误吗?我喜欢检查是否在每次启动时都安装了 cydia.app,如果安装了 Cydia,Lable 应该会更改,并且应该启用一个按钮,但没有任何反应。

代码如下:

NSString *filePath = @"/Applications/Cydia.app";
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]){
    Lable.text = @"You are jailbroken";
    Button.enabled = YES;
}

【问题讨论】:

    标签: iphone uibutton uilabel viewdidload


    【解决方案1】:

    如果要启用按钮,则需要将两行都用括号括起来,并删除条件后面的分号。基本上,您的代码应如下所示:

    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"cydia://"]]){
         Lable.text = @"You are jailbroken";
         Button.enabled = YES;
    }
    

    否则,您当前在条件语句之后使用的通过插入分号,实际上是一个空语句。即使您删除分号,也只会执行第一行。因此,您需要删除分号,并插入大括号来设置条件的范围。

    编辑:

    也许您可能需要尝试构建路径而不是对其进行硬编码:

    NSString* filePath = [NSSearchPathForDirectoriesInDomains(NSApplicationDirectory, NSUserDomainMask, YES) stringByAppendingPathComponent: @"cydia.app"];
    

    如果文件仍然不存在,尝试列出NSApplicationDirectory中的文件和目录,看看文件是否真的存在,或者你需要在别处搜索(甚至可能是子文件夹)。

    【讨论】:

    • 对不起,我设置了错误的越狱检测,但在您的帮助下,它和以前一样:(
    • 我自己找到了代码 if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"cydia://"]]) { lablered.text = @""; } if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"cydia://"]] == NO) { labellered.text = @"你没有越狱"; Button.enabled = 否; rebootbutton.enabled = 否; actionbutton.enabled = 否; }
    【解决方案2】:

    在您的代码中设置一些断点,以便在调试代码时可以看到条件语句正在评估什么,并根据该条件判断,然后查看 if 结构中的代码发生了什么。在很多情况下,像这样,简单地设置断点并快速跳过你的代码会比在互联网上发布问题更快地引导你解决问题,并不是人们不会帮助你,而是你不会被阻止可以继续工作。

    干杯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      • 2017-02-20
      • 2016-09-16
      • 1970-01-01
      相关资源
      最近更新 更多