OC에서 사용자 정의 형식 대상을 저장하는 지구화 방법

2550 단어
OC에서 사용자 정의 유형의 객체를 파일에 저장하려면 다음 세 가지 조건이 필요합니다.
사용자 정의 형식을 저장하는 그룹을 영구화하려면 (메모리에 있는 임시 데이터를 파일 < 데이터베이스 등 > 형식으로 디스크에 쓰는 것) 만족해야 합니다.
 1. 사용자 정의 대상은 서열화되어야 합니다. (데이터를 질서정연하게 저장해야 합니다.)
 2. 지속적인 아카이빙 필요
 3. 지구화 파일을 불러오려면 반서열화가 필요합니다. (질서정연하게 저장된 데이터를 읽고 사용자 정의 대상이 되는 것입니다.)
첫째, 사용자 정의 형식을 서열화하고, 세 번째 단계는 파일을 반서열화하려면 OC의 프로토콜을 실현해야 한다.
Student 클래스의 경우
@interface Student : NSObject<NSCoding>
@property(nonatomic,copy)NSString * name;
@property(nonatomic,copy)NSString * pwd;
@end

서열화 방법은
-(void)encodeWithCoder:(NSCoder *)aCoder
{
    [aCoder encodeObject:self.name forKey:@"name"];
    [aCoder encodeObject:self.pwd forKey:@"pwd"];
}

반서열화 방법은 다음과 같습니다.
-(id)initWithCoder:(NSCoder *)aDecoder
{
    self= [super init];
    if(self)
    {
        self.name=[aDecoder decodeObjectForKey:@"name"];
        self.pwd=[aDecoder decodeObjectForKey:@"pwd"];     
    }
    return self;
}

주의해야 할 것은 우리가 클래스의 성명 문서에서 이 두 파일을 성명할 필요가 없다는 것이다. 왜냐하면 우리는 이 두 가지 방법만 이 클래스에서 사용하기 때문에 우리는 실현 파일에서 이 두 가지 방법을 실현하면 된다.
주의해야 할 것은 압축 파일 작업이 밖에서 이 협의를 실현하는 두 가지 방법은 이미 시스템에 의해 실현되었기 때문에 우리는 압축 파일 작업을 실현할 필요가 없다.우리가 필요로 하는 것은 단지 파일을 지정한 파일에 쓰고, 이 파일을 읽는 것이다.우리는 우리가 읽기와 쓰기 방법을 실현하는 과정에서 서열화와 반서열화 조작을 실현했다는 것을 이해할 수 있다.따라서 아카이빙 작업을 수행할 수 있습니다.파일에 쓰기 및 읽기 코드는 다음과 같습니다.
        [NSKeyedArchiver archiveRootObject:stuArr toFile:@"/Users/Administrator/Desktop/4.plist"];
        [NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/Administrator/Desktop/4.plist"];

이 파일에 포함된 대상을 옮겨다니면 파일에 포함된 대상의 모든 속성을 얻을 수 있습니다
        for(Student * s in stuArr)
        {
            NSLog(@"%@,%@",s.name,s.pwd);
        }

 
 
        

좋은 웹페이지 즐겨찾기