关于
报错(警告):_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掉观察者 我是这样解决的