標籤:
1.錯誤域Error Domain
NSMachErrorDomain:系統核心錯誤
NSPOSIXErrorDomain:系統錯誤
NSOSStatusErrorDomian:MacOS9之前的錯誤或者Carbon架構錯誤
NSCocoaErrorDomain:cocoa架構錯誤
2.本地化錯誤描述
(1)NSUnderlyingErrorKey
NSDictionary *userInfo = [error userInfo];
NSString *errorDesc = nil;
//檢查有沒有"NSUnderlyingErrorKey"可供使用
if(userInfo && [userInfo objectForKey:NSUnderlyingErrorKey]){
NSError *underlyingError = [userInfo objectForKey:NSUnderlyingErrorKey];
if(underlyingError){
errorDesc = [underlyingError localizedDescription];
}
else{
errorDesc = [error localizedDescription];
}
}
else{
errorDesc = [error localizedDescription];
}
(2)localized Description
NSError *errorInfo = nil;
//假設在作業系統的根目錄上放一個"test.rtf"檔案,strTest拿到@"/test.rf"的內容
NSString *strTest = [NSString stringWithContentsOfFile:@"/test.rf"
encoding:NSUTF8StringEncoding
ettor:&errorInfo];
if(!strTest){
if(!errorInfo){
NSLog(@"An error occurred: %@" , [errorInfo localizedDescription]);
}else{
NSLog(@"An unknow error occurred" );
}
}
3.輸出當前的函數
%s __FUNCTION__
4.單例
share*****
default*****
5.ARC
weak和strong代替assign.retain.copy
6.KVC
valueForKeyPath 取
setValue: forkey: 設定
7.KVO
[self addObserver:self
forKeyPath:@"datasrc"
options:*****
context:@"testContent"];
20160126深入淺出obc知識點整理