2012-09-09 44 views
2

你能說我在這段代碼中是錯誤的嗎?我喜歡檢查每次啓動時是否安裝了cydia.app,並且如果安裝了Cydia,Lable應該更改,並且應該啓用一個按鈕,但沒有任何反應。ViewDidLoad什麼是假

下面是代碼:

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

回答

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的文件和目錄看看文件是否真的存在,或者你需要在別處搜索(甚至可能是一個子文件夾)。

+0

抱歉,我把假的越獄檢測,但在您的幫助是和以前一樣:( – user1658674

+0

@ user1658674我更新了帖子 – 2012-09-10 00:11:50

+1

我發現代碼在我自己,如果([[UIApplication的sharedApplication] canOpenURL:[NSURL URLWithString:@「cydia://」]]){ lablered.text = @「」; } if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@「cydia://」]] NO ){ lablered.text = @ 「你是不是越獄」; Button.enabled = NO; rebootbutton.enabled = NO; actionbutton.enabled = NO; } – user1658674

1

在你的代碼中設置一些斷點,這樣當你調試你的代碼時,你可以看到你的條件語句正在評估什麼,並根據它來查看if結構中代碼的情況。在許多情況下,就像這樣,只需設置斷點並快速移動代碼就可以使您的解決方案比在Internet上發佈問題更快,而不是人們不會幫助您,但您不會受到阻礙,可以繼續工作。

乾杯。

相關問題