iOS 7 Only App在启动时崩溃

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 7 Only App在启动时崩溃相关的知识,希望对你有一定的参考价值。

我最近将我的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];

任何帮助,将不胜感激

答案

您可能做了我所做的事情,过度切割并替换了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];
另一答案

由于为归因String提供了不同的NSAttributedString.key和值,因此出现此问题。

错误:让prefixAttribute = [NSForegroundColorAttributeName:UIFont(名称:“HelveticaNeue-Light”,大小:11.0),NSFontAttributeName:UIColor.darkGray]

解决:let prefixAttribute = [NSFontAttributeName:UIFont(名称:“HelveticaNeue-Light”,大小:11.0),NSForegroundColorAttributeName:UIColor.darkGray]

我已将colorarrtibute与字体互换,反之亦然

以上是关于iOS 7 Only App在启动时崩溃的主要内容,如果未能解决你的问题,请参考以下文章

iOS App 仅在实时 IAP 购买初始化时崩溃

Android - 应用程序启动时片段 onCreate 崩溃

popToRootViewControllerAnimated 在 IOS 7 sim 上的 Xcode5 中使 App 崩溃

iOS 7 只有应用程序在启动时崩溃

为啥我的更新后的应用程序在仅适用于 IOS8 的启动时崩溃?

需要帮助:“错误的架构”导致应用在 iOS 7 中启动时崩溃,但在 iOS 8 中运行良好