我只是在保存到用户默认设置时才在iOS 10上遇到一些有趣的崩溃.还有其他人看到类似的崩溃?这是iOS 10的错误还是对我们应该准备的SDK的更改?
+ (BOOL) saveObject:(NSObject<NSCoding>*)obj forKey:(NSString*)key{
if(key == nil || [key length] == 0) {
return NO;
}
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if(obj == nil) {
[defaults setObject:nil forKey:key];
} else {
NSData *myEncodedObject = [NSKeyedArchiver archivedDataWithRootObject:obj];
[defaults setObject:myEncodedObject forKey:key];
}
[defaults synchronize];
return YES;
}
#-1. com.apple.main-thread
0 libsystem_kernel.dylib 0x18407334c mach_msg_trap + 8
1 libsystem_kernel.dylib 0x1840731bc mach_msg + 72
2 CoreFoundation 0x1844ade64 __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x1844aba80 __CFRunLoopRun + 1132
4 CoreFoundation 0x1843de2e4 CFRunLoopRunSpecific + 292 …Run Code Online (Sandbox Code Playgroud) -(void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section{
UITableViewHeaderFooterView *headerIndexText = (UITableViewHeaderFooterView *)view;
[headerIndexText.textLabel setTextColor:[UIColor whiteColor]];
}
Run Code Online (Sandbox Code Playgroud)
上面的代码在iOS6和iOS7上运行良好,并且已经生产了一段时间.但是,在iPhone5S模拟器上的iOS8上运行时,应用程序崩溃时出现以下错误:
- [UIView textLabel]:无法识别的选择器发送到实例0xeccad20
这是一种不赞成使用此标签样式的方法,还是iOS8中的错误?
在我们的应用程序中,我们有一个UIPickerView,可以让您选择一个季节.但是,在iOS 11上," 完成"按钮和" 取消"按钮消失,只有在应用程序之间切换时才可见.还有其他人经历过这个吗?
iOS 11行为的屏幕截图,iOS 10行为如下.
编辑:这是一个包含问题的完整示例应用程序:
这是设置选择器视图的代码
func setUpPickerView(){
self.seasonPicker = UIPickerView.init(frame: CGRect.init(x: 0, y: 50, width: self.frame.width, height: UIScreen.main.bounds.height / 3))
self.seasonPicker.delegate = self
self.seasonPicker.dataSource = self
self.seasonTextField.inputView = self.seasonPicker
let toolbar = UIToolbar.init(frame: CGRect.init(x: 0, y: 0, width: self.frame.width, height: 50))
toolbar.barStyle = UIBarStyle.default
let labelTitle = UILabel.init(frame: CGRect.init(x: 0, y: 50, width: 150, height: 20))
labelTitle.backgroundColor = UIColor.clear
labelTitle.textColor = UIColor.black
labelTitle.textAlignment = NSTextAlignment.left
labelTitle.text = "Select a Season"
labelTitle.sizeToFit()
let …Run Code Online (Sandbox Code Playgroud)