Подтвердить что ты не робот

IOS 7 только сбой при запуске приложения

Недавно я изменил свой проект xcode на iOS 7, а не на поддержку iOS 5. Сделав это изменение, как только приложение запустится, я получаю это сообщение в консоли.

-[UICachedDeviceWhiteColor shadowColor]: unrecognized selector sent to instance 0x156f22f0

Я не уверен, что вызывает это. Но, используя отладчик, кажется, что мой делегат приложения сбой в первой строке кода.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

self.window.rootViewController = self.tabBarController; //this line is where it crashes

[self.window makeKeyAndVisible];

Любая помощь будет оценена

4b9b3361

Ответ 1

Вы, вероятно, сделали то, что я сделал, и чрезмерно отрезали и заменяли предупреждения компилятора для UITextAttributeTextShadowColor и UITextAttributeTextShadowOffset. Итак, у вас был код, похожий на этот:

NSDictionary *titleAttributes = @{UITextAttributeTextColor: [UIColor whiteColor],
                                  UITextAttributeTextShadowColor: [UIColor blackColor],
                                  UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(1, 0)],
                                  UITextAttributeFont: [UIFont titleBolder]};
[[UINavigationBar appearance] setTitleTextAttributes:titleAttributes];

и заменил их как на NSShadowAttributeName, так и на следующий код:

NSDictionary *titleAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor],
                                  NSShadowAttributeName: [UIColor blackColor],
                                  NSShadowAttributeName: [NSValue valueWithUIOffset:UIOffsetMake(1, 0)],
                                  NSFontAttributeName: [UIFont titleBolder]};
[[UINavigationBar appearance] setTitleTextAttributes:titleAttributes];

Что вам нужно сделать, это иметь один атрибут NSShadowAttributeName и создать экземпляр NSShadow, который содержит теневой цвет и смещение тени.

NSShadow *shadow = [[NSShadow alloc] init];
shadow.shadowColor = [UIColor blackColor];
shadow.shadowOffset = CGSizeMake(1, 0);
NSDictionary *titleAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor],
                                  NSShadowAttributeName: shadow,
                                  NSFontAttributeName: [UIFont titleBolder]};
[[UINavigationBar appearance] setTitleTextAttributes:titleAttributes];