崩溃问题收集1----Illegal property type, c for appearance setter, _installAppearanceSwizzleForSetter

"Illegal property type, c for appearance setter, _installAppearanceSwizzleForSetter: "崩溃的解决方案

分类: ======移动开发====== -> iOS开发
iOS crash

之前遇到过一次这种crash:

Illegal property type, c for appearance setter, _installAppearanceSwizzleForSetter:

在iOS8下没问题,但到了iOS7一运行就crash。

之后找到原因,是因为这一行代码:

[objc]  view plain copy
  1. [[UINavigationBar appearance] setTranslucent:NO]  

这是一个很奇怪的问题,iOS7不支持这种写法(iOS8是没问题的),不知是苹果有意为之还是bug,似乎iOS7中,[UINavigationBar appearance]是没有translucent属性的。

参见帖子:http://stackoverflow.com/questions/19125468/why-does-uinavigationbar-appearance-settranslucentno-crash-my-app

解决方法很简单,很多种,比如说在基类BaseViewController中加入一行:

[objc]  view plain copy
  1. self.navigationController.navigationBar.translucent = NO;  

如果有朋友知道苹果没有给[UINavigationar appearcane]设置translucent属性的原因,欢迎指点。

你可能感兴趣的:(ios开发,->)