關於
報錯(警告):_BSMachError: (os/kern) invalid capability (20)和_BSMachError: (os/kern) invalid name (15)解決方法
1.錯誤方式和解決
**我出現這個問題是在UIAlertController中點擊設置使用[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Privacy"]]跳轉到系統設置的時候發生的**
_BSMachError: (os/kern) invalid capability (20)
_BSMachError: (os/kern) invalid name (15)
解決方法:
經過使用多線程延遲調用解決這個問題,代碼以下:
dispatch_after(0.2, dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Privacy"]];//隱私設置
});
2.錯誤方式和解決
前些天在作app升級提示的時候,遇到了警告:
_BSMachError: (os/kern) invalid capability (20)
_BSMachError: (os/kern) invalid name (15)
緣由:是本身在alertAction中添加了時間,可是並未採用延時機制。
解決辦法:代碼示例
[alertVC addAction:[UIAlertAction actionWithTitle:@"如今升級"
style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action)
{
//這裏添加了多線程,消除警告
dispatch_after(0.2, dispatch_get_main_queue(), ^{
NSURL *appStoreUrl = [NSURL URLWithString:[NSString
stringWithFormat:kAppStore_APPVersionUrl,APP_ID]];
[[UIApplication sharedApplication] openURL:appStoreUrl];
NSLog(@"連接--%@",appStoreUrl);
});
}]];
3.錯誤方式和解決
解決方法:網上的解決方法
多是通知的問題。我是註釋了postNotificationName,忘記把addObserver也刪除。
在視圖消失viewDidDisappear的這個方法中 remove掉觀察者 我是這樣解決的