oc 异常报错
来源:互联网 发布:网络空间研究院 编辑:程序博客网 时间:2024/06/06 08:47
自:《Effective Objective-C2.0编写高质量iOS与OS X代码的52个有效方法》
(一)
报错:Expected a type
现象:两个类的头文件相互引用报错,造成循环引用
解决:使用“向前申明”解决
//// EOCPerson.h// iOS//// Created by wu on 15/6/6.//#import <Foundation/Foundation.h>//打开这个注释,Expected a type 报错,原因是循环引用造成的两个类当中有一个无法被正确编译//#import "EOCEmployer.h"//向前申明 打开这个注释,Expected a type 将不报错@class EOCEmployer;@interface EOCPerson : NSObject@property (nonatomic, copy) NSString *firstName;@property (nonatomic, copy) NSString *lastName;@property (nonatomic, strong) EOCEmployer *employer;@end
//// EOCPerson.m// iOS//// Created by wu on 15/6/6.//#import "EOCPerson.h"#import "EOCEmployer.h"@implementation EOCPerson-(void) printEmployer{ NSLog(@"employer%@", self.employer);}@end
//// EOCEmployer.h// iOS//// Created by wu on 15/6/6.//#import <Foundation/Foundation.h>#import "EOCPerson.h"@interface EOCEmployer : NSObject- (void)addEmployer:(EOCPerson*)person;- (void)removeEmployer:(EOCPerson*)person;@end
//// EOCEmployer.m// iOS//// Created by wu on 15/6/6.//#import "EOCEmployer.h"@implementation EOCEmployer- (void)addEmployer:(EOCPerson*)person{}- (void)removeEmployer:(EOCPerson*)person;{}@end
(二)
异常: * Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘* -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[1]’
原因:字面数组中有为nil的元素
解决:检查各个元素,将为nil的元素修改
//普通创建数组的方式 NSArray *animals = [NSArray arrayWithObjects:@"cat", @"dog", @"mouse", @"badger", nil]; //使用 NSString *dog = [animals objectAtIndex:1]; //创建字面量数组 NSArray *animals1 = @[@"cat", @"dog", @"mouse", @"badger"]; //使用 NSString *cat = animals1[0]; //如: id object1 = @1; id object2 = nil; id object3 = @3; //此数组中只有object1,因为arrayWithObjects会依次处理各个参数,直到发现nil为止 NSArray *arrayA = [NSArray arrayWithObjects:object1, object2, object3, nil]; //而object2位nil,会引发异常,向数组中插入nil通常说明程序有错,通过异常可以更快的发现这个错误 //使用字面量数组比上面的方式更安全 NSArray *arrayB = @[object1, object2, object3]; NSLog(@"%@", arrayA[1]); NSLog(@"%@", arrayB[1]);
0 0
- oc 异常报错
- 异常报错集锦
- dynamic_cast报错 异常
- 报错异常
- recycleview异常报错
- restoreToCount 异常报错.
- java-异常 报错
- OC报错:framework not found Reveal
- OC报错:framework not found Reveal
- SSH包+报错异常
- 消除NetworkOnMainThreadException异常报错
- Android 线程异常报错
- webservice开发异常报错
- TabLayout异常报错问题
- hibernate报错异常总结
- mysql 报错异常集合
- OC异常处理
- oc的异常处理
- hibernate必须的包下载以及各个包的作用
- android学习Activity笔记
- POJ 1042 Gone Fishing
- hdu 5210 Greatest Greatest Common Divisor
- sed (Stream Editor)
- oc 异常报错
- C#调用MATLAB 库函数记录
- 类的构造函数和析构函数 Class Constructors and Destructors
- Distinct Subsequences
- zoj 1008 Gnome Tetravex
- Hadoop源码分析,map输入
- Ubuntu下安装GTK
- 2执行简单的增删改操作
- 推荐系统的那点事