1、有些崩溃信息有限无法定位问题,为了获取一些堆栈信息以便于快准狠的定位问题,可以在main函数里添加try-catch:
int main(int argc, char * argv[]) {
@try {
@autoreleasepool
{
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
@catch (NSException* exception)
{
NSLog(@"Exception=%@\nStack Trace:%@", exception, [exception callStackSymbols]);
}
}
2、 FOUNDATION_EXPORT
FOUNDATION_EXPORT和#define意思一样,都是定义一个变量。
ClassA.h文件
FOUNDATION_EXPORT NSString * const kName;
ClassA.m文件
NSString * const kName = @"Animal";
当在其他的类里面需要引用kName时,在ClassB.m中
extern NSString *kName;
使用FOUNDATION_EXPORT方法在检测字符串的值是否相等的时候效率更快,
可以直接使用(strName == kName)来比较。
FOUNDATION_EXPORT和#define的区别
FOUNDATION_EXPORT是对字符串的指针地址比较;
#define是调用isEqualToString的方法。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
网友评论