Итак, мое первое приложение, которое я делаю, предназначено для устройств с джейлбрейком.
Я должен сказать, что это еще не закончено, но я считаю хорошей привычкой время от времени тестировать незавершенные приложения на реальном устройстве во время разработки приложения. Поскольку мое приложение предназначено для устройств с джейлбрейком, мне приходится фальшиво подписывать приложение и все такое.
Дело в том, что в моем приложении есть plist с двумя записями: bool для «hasBeenLaunchedBefore» и строка для «Password». Мое приложение изменяет TRUE на hasBeenLaunchedBefore, когда приложение завершает настройку, поэтому, когда приложение загружается, оно получает другое представление. Пароль прост: он хранит пароль для пользователя.
Я думаю, что мой файл plist не изменяется, когда я запускаю свое приложение на своем устройстве, потому что когда приложение никогда раньше не запускалось, вы получаете мастер настройки. Каждый раз, когда я закрываю приложение, я продолжаю получать мастер настройки, что означает, что hasBeenLaunchedBefore не изменяется на TRUE, как это должно быть. Кроме того, мои пароли НИКОГДА не совпадают, поэтому это означает, что пароль также не изменяется.
Все отлично работает в iOS Simulator, но не в моем iDevice. Может ли кто-нибудь помочь мне немного с этим? Может ли быть проблема с разрешениями? Это действительно, действительно оставило меня без слов или идей, чтобы это исправить. Я предполагаю, что могу поместить plist в /Documents, но я понятия не имею, как это сделать. Поэтому, если у кого-то есть предложения для меня, чтобы исправить это, я буду очень признателен.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if(![defaults objectForKey:@"first_launch"]){ //Load first_launch from NSUserDefaults. It should be either true or false, but never (null).
[self.window addSubview:configWizard.view];
UIAlertView *lol = [[UIAlertView alloc] initWithTitle:@"Never started before." message:@"The app was never started before." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[lol show];
[lol release];
}else{
[self.window addSubview:tabBarController.view];
UIAlertView *lol = [[UIAlertView alloc] initWithTitle:@"Started before." message:@"The app was started before." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[lol show];
[lol release];
}
[defaults synchronize];
// Add the tab bar controller's view to the window and display.
[self.window makeKeyAndVisible];
return YES;
}
Это старый код, который я использовал, когда пытался загрузить из NSUserDefaults, но first_launch продолжал возвращаться (null).