외규장각 도서 환수 모금 캠페인

'nsdata'에 해당되는 글 3건

  1. 2012.07.11 UIDocument
  2. 2012.07.10 NSFileManager, NSFileHandle, NSData
  3. 2012.04.25 NSString <-> NSData

UIDocument 클래스 - 문서와 내용을 쉽게 생성하고 관리하기 위한 방법 제공

 추상클래스이므로 UIDocument의 서브클래스를 만들고 최소한 다음 두 가지의 메소드를 오버라이   드 해야한다.

- contentsForType:error - 데이터가 파일이나 문서로 쓰여질 때 UIDocument 서브클래스에 의해 호출된다. 이 메서드는 쓰여질 데이터를 수집하고 NSData나 NSFileWrapper 오브젝트로 리턴하는 것을 담당한다.


- loadFromContents:ofType:error - 데이터가 파일이나 문서로부터 읽혀질 때 서브클래스에 의해 호출된다. 이 메서드는 UIDocument 서브클래스에 의해 파일로부터 읽혀진 내용을 전달받아 애플리케이션의 데이터 모델에 로드하는 것을 담당한다.


UIDocument 서브클래스 오브젝트의 현재 상태는 오브젝트의 documentState 속성을 통해 알 수 있다.

- UIDocumentStateNormal - 문서가 오픈되었고 사용자는 편집 할 수 있다.

- UIDocumentStateClosed - 문서는 현재 닫혀 있다. 문서를 읽는 도중 에러가 발생한 경우도 해당된다.

- UIDocumentStateInConflict - 문서에 대해 충돌이 감지되었다.

- UIDocumentStateSavingError - 문서를 저장하려 할 때 에러가 발생하였다.

- UIDocumentStateEditingDisabled - 문서가 busy 상태이며, 편집하기에 안전하지 않다.


옵저버에 UIDocumentStateChangedNotification 노티피케이션을  등록함으로써 처리 가능

Posted by 닉네임영역
,

NSFileManager - NSFileManager 클래스는 파일 생성, 이동, 읽기, 쓰기, 그리고 파일의 속성 읽고 설정하기와 같은 기본적인 파일과 디렉토리 작업을 할 때 사용된다. 게다가 이 클래스는 현재 작업 중인 디렉토리를 식별하는 것과 새로운 디렉토리로 변경하는 것, 그리고 디렉토리를 생성하고 디렉토리에 있는 항목들을 나열하는 작업을 위한 메서드들을 제공한다.


NSFileHandle - NSFileHandle 클래스는 파일 내에서의 특정 위치를 찾는 것과 일정 크기의 바이트 양의 파일 내용을 읽고 쓰는 것과 기존의 파일에 데이터를 추가하는 것과 같이 낮은 수준의 작업을 수행하기 위하여 제공된 클래스다.


NSData - NSData 클래스는 읽어 온 파일의 내용이나 파일에 쓸 데이터를 위하여 유용한 저장 버퍼를 제공한다.



NSFileManager *filemgr;

NSString *currentpath;


filemgr = [NSFileManager defaultManager]; 

currentpath = filemgr currentDirectoryPath]; // 현재 작업 중인 디렉토리


if([filemgr changeCurrentDirectoryPath: @"/temp/mydir"] == NO) //디렉토리 변경 실패했을 경우

NSLog(@"Cannot change directory");


currentpath = [filemgr currentDirectoryPaht];


[filemgr createDirectoryAtPath: @".tmp/mynewdir", attributes: nil]; // 새로운 디렉토리 생성


[filemgr removeItemAtPath: @"/tmp/mynewdir" error:nil ]; // 디렉토리 삭제


[filemgr movePath:@"/tmp/mynewdir" toPath: @"/tmp/mynewdir2" handle:nil]; // 디렉토리 이름 변경과 이동


NSArray *filelist;

filelist = [filemgr directoryContentsAtPath: @"/tmp"]; // 디렉토리에 있는 파일 목록 얻기


if([filemgr fileExistsAtPath: @"/tmp/myfile.txt"] == YES) // 파일이 있을 경우

     NSLog(@"File exists");


if([filemgr contentsEqualAtPath: @"/tmp/myfile.txt" andPath: @"/tmp/sales.txt"] == YES) // 두 개의 파일 내용 비교



접근 권한 - 파일 경로를 인자로 받는다

- isReadableFileAtPath:

- isWritableFileAtPath:

- isExecutableFileAtPath:

- isDeletableFileAtPath;



NSFileManager *filemgr;

NSData *databuffer;


filemgr = [NSFileManager defaultManager];


databuffer = [filemgr contentsAtPath: @"/tmp/myfile.txt"]; // 내용 담기



 NSString *homedir;

homedir = NSHomeDirectory(); // 현재사용자의 홈 디렉토리 얻기



* NSCopying 프로토콜을 사용하여 객체를 복사하면 복사한 객체의 값이 변하더라도 원본 객체의 값에는 변화가 없다.


Posted by 닉네임영역
,

NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

Posted by 닉네임영역
,


사랑합니다. 편안히 잠드소서