-
[iOS] -(BOOL)writeToFile:atomically: 메소드가 궁금해?앱등이에게 살충제를 뿌린다./iOS 2016. 1. 3. 21:40
<미친 감수성 비유.. 아카이빙 메소드를 편지에 비유했다. 갓무망치>
-(BOOL)writeToFile:atomically:라는 메소드에 대해서 알아봅니다.
writeToFile: 이름만 들어도 File에 객체를 쓸 것 같네요. 맞습니다.
객체를 file에 아카이빙 하는 메소드입니다.
atomically: 이름만 들어도 한번에 모든일을 동시에 처리할 것 같습니다. 맞습니다.
atomically:에 YES를 전달하면 아카이빙은 임시 백업 파일에 먼저 기록하고 기록이 모두 성공하면 최종 데이터를 지정한 파일에 저장하게 됩니다.
원본 파일의 손상을 막을 수 있고 시스템이 크래시를 내는일을 방지합니다.
이렇게 사용하시면 됩니다.
안타깝게도 이 메소드는 모든 클래스에 대해 사용되는 메소드가 아닙니다.
Objective-C 기본객체인 NSString, NSDictionary, NSArray, NSDate, NSData, NSNumber 에 대하여 사용이 가능합니다.
우리가 만든 클래스를 저장하시려면 NSCoding프로토콜을 구현하시어 encodeWithCoder:메소드를 구현해주셔야 할 것 같은 직감이 오네요.
편지를 쓰는 과정을 이 메소드에 비유시켜 보도록 하겠습니다.
(1) 내 머릿속에서 전하고자 하는 내용 : 전달할 객체
(2) 펜으로 편지를 쓰는 작업 : writeToFile
(3) 아무 종이에 적어서 완성을 한 뒤 편지지에 옮기는 일 : atomically:YES
(4-1) 그냥 바로 편지지에 적는 일 : atomically : NO
(4-2) 편지지에 내가 원하는 내용 작성이 완성 : return YES
(5) 편지지에 내가 원하는 내용 작성 실패 : return NO [편지지 손상]
atomically에 NO를 준 뒤 fail이 나면.. 저장하고자 하는 파일이 손상되겠네요. 빈 파일이었다면 상관 없겠지만요.
고독한 마이웨이를 걷는 분이 아니시라면 YES를 써주도록합시다^^
참조 : Programming in Objective-c 2.0 (http://book.naver.com/bookdb/book_detail.nhn?bid=7382562)
'앱등이에게 살충제를 뿌린다. > iOS' 카테고리의 다른 글
Target-Action (0) 2016.01.10 responder object (0) 2016.01.10 [iOS/XCode] This application's application-identifier entitlement does not match that of the installed application. These values must match for an upgrade to be allowed. 해결 (0) 2015.12.22 [NSHipster - iOS] NS_ENUM, NS_OPTIONS 알아보자 (0) 2015.12.02 [iOS] 웹뷰로 하이브리드앱 구현 시작하기. Building a Hybrid App with UIWebView. (5) 2015.11.27