ViewDidLoad什么是假的

时间:2012-09-09 23:31:24

标签: iphone uibutton uilabel viewdidload

你能告诉我这段代码中有什么不对吗?我想检查每次启动时是否安装了cydia.app,如果安装了Cydia,Lable应该更改,应该启用一个按钮,但没有任何反应。

以下是代码:

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

1 个答案:

答案 0 :(得分:3)

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

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中的文件和目录以查看文件是否确实存在,或者您需要在别处搜索(甚至可能是子文件夹)。