Чи можете ви сказати мені, що в цьому коді неправда? Мені подобається перевіряти, чи встановлено cydia.app під час кожного запуску, і якщо Cydia встановлена, Lable повинен змінюватися, і кнопка повинна бути включена, але нічого не відбувається.
Ось код:
NSString *filePath = @"/Applications/Cydia.app";
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]){
Lable.text = @"You are jailbroken";
Button.enabled = YES;
}
Відповіді:
3 для відповіді № 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
щоб побачити, чи файл існує, чи потрібно шукати в іншому місці (можливо, навіть в підпапках).
1 для відповіді № 2
Встановіть деякі точки перерви у своєму коді, щоб колипри налагодженні коду ви можете бачити, на що оцінюється ваше умовне твердження, і залежно від цього, а потім бачите, що відбувається з кодом у вашій структурі if. У багатьох випадках, наприклад, просто встановлення точок перерви та швидкий перехід коду призведе до того, що ви вирішите швидше, ніж розміщувати питання в Інтернеті. може продовжувати працювати.
Підбадьорює