你能告诉我这段代码中有什么不对吗?我想检查每次启动时是否安装了cydia.app,如果安装了Cydia,Lable应该更改,应该启用一个按钮,但没有任何反应。
以下是代码:
NSString *filePath = @"/Applications/Cydia.app";
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]){
Lable.text = @"You are jailbroken";
Button.enabled = YES;
}
答案 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
中的文件和目录以查看文件是否确实存在,或者您需要在别处搜索(甚至可能是子文件夹)。