> For the complete documentation index, see [llms.txt](https://ryukiedev.gitbook.io/wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ryukiedev.gitbook.io/wiki/issue/shi-yong-kvc-she-zhi-uialertaction-an-niu-yan-se-de-crash.md).

# 01 使用KVC设置UIAlertAction按钮颜色的Crash

## 使用KVC设置UIAlertAction按钮颜色的Crash

```swift
=> Start [<UIAlertAction 0x1702b63e0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key _titleTextColor.
    -> translating『 0x1005eb9a0 』=> -[UsedHouseDetail firstCollectTip] QFangWang/HouseDetail/Controller/UsedHouseDetail.m: line 509
    -> translating『 0x1005eb668 』=> __39-[UsedHouseDetail RequestColletionData]_block_invoke.481 QFangWang/HouseDetail/Controller/UsedHouseDetail.m: line 472
    -> translating『 0x1007b0cfc 』=> -[YTKNetworkAgent handleRequestResult:] /Users/Fish/iOS-Client/QFangWang/Pods/YTKNetwork/YTKNetwork/YTKNetworkAgent.m: line 262
    -> translating『 0x1007b020c 』=> __33-[YTKNetworkAgent ytk_addRequst:]_block_invoke.145 /Users/Fish/iOS-Client/QFangWang/Pods/YTKNetwork/YTKNetwork/YTKNetworkAgent.m: line 156
    -> translating『 0x100227524 』=> main QFangWang/main.mm: line 13
=> End [<UIAlertAction 0x1702b63e0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key _titleTextColor.
>------------------------------------------------------<
```

最近线上发现了如上面所示的bug

是为了实现改变 `UIAlertAction` 默认按钮颜色的地方使用了下面方式

```swift
[action setValue:[UIColor redColor] forKey:@"_titleTextColor"];
```

但是在某些系统版本中 `UIAlertAction` 中并没有 `_titleTextColor` 这个成员变量而导致了崩溃 具体可以通过 `runtime` 获取成员列表来看看

## fix

判断是否有 `_titleTextColor` 来设置 或者 通过设置 `alertController.view.tintColor` 来实现 需要注意的是: 在8.4上由于层级结构的问题 需要在 `presentAlertVC` 后设置 `tintColor`

## 参考

<http://www.jianshu.com/p/8a2b5a3a9167>
