IOS开发过程中遇见的报错及解决方法汇总

2016-11-20  本文已影响0人  Felix灬泡泡
1、报错:Application tried to present a nil modal view controller on target XXXX.
2、报错:unable to dequeue a cell with identifier identifierCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard.
[self.tableView registerNib:[UINib nibWithNibName:@"identifierTableViewCell" bundle:nil] forCellReuseIdentifier:@"identifierCell"];//identifierTableViewCell为Cell所在的XIB文件名

[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"identifierCell"];
3、报错:Warning: Attempt to present <UIAlertController: XXX> on <XXXTableViewController: XXX> which is already presenting (null).
[已经present出的ViewController dismissViewControllerAnimated:YES completion:nil];

当然,最好的写法是通过如下方法找到present出来的控制器,再去dismiss。

[UIApplication sharedApplication].keyWindow.rootViewController.presentedViewController:
4、报错:Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object'.
NSMutableArray *mArr = [[NSUserDefaults standardUserDefaults] objectForKey:@"arrKey"];
[mArr addObject:@"object"];

 NSMutableDictionary *mDic = [[NSUserDefaults standardUserDefaults] objectForKey:@"dicKey"];
[mDic setObject:@"value" forKey:@"key"];

不会报错姿势:

NSArray *arr = [[NSUserDefaults standardUserDefaults] objectForKey:@"arrKey"];
NSMutableArray *mArr = [NSMutableArray arrayWithArray:arr];
[mArr addObject:@"object"];  

 NSDictionary *dic = [[NSUserDefaults standardUserDefaults] objectForKey:@"dicKey"];
NSMutableDictionary *mDic = [NSMutableDictionary dictionaryWithDictionary:dic];
[mDic setObject:@"value" forKey:@"key"];

<br />

本文为本人开发过程中遇见的报错以及解决办法,本人为小白,所以有些原因可能写得不正确或解决办法不是最优。
如有错误,欢迎指正!
继续更新中......
上一篇 下一篇

猜你喜欢

热点阅读