사용자 지정 클래스의 개체에 대한 NSMutableArray의 직렬화 및 역 직렬화

StackCoder

플랫폼 : XCode5 언어 : Objective C 프로젝트 : iOS 앱

나는 기본적으로 Java 및 C # 배경에서 왔으며 이것이 첫 번째 iOS 앱이므로 심각하게 제한되어 있습니다.

사용자 데이터를 저장해야하는 애플리케이션에서 작업 중입니다. 약 10 개의 데이터 모델 클래스가 있으며 일부 클래스에는 사용자 정의 유형의 속성이 있습니다. 모든 모델의 총 레코드 수는 앱 사용 수명 동안 1000 개 미만입니다. 기본적으로 단일 날짜에 각 날짜 모델의 개체를 하나만 생성 할 수 있습니다. "일자 d에 대해 데이터 모델 유형 X의 하나의 레코드 표시"와 같은 기본 쿼리를 제외하고는 저장된 데이터에 대한 쿼리가 많지 않습니다.

각 데이터 모델의 레코드를 간단한 텍스트 파일이나 직렬화를 사용하여 직렬화하는 간단한 접근 방식을 사용하려고합니다. 따라서 새 레코드가 생성 될 때마다 직렬화되어 이전 레코드를 포함하는 파일에 기록됩니다.

파일의 모든 기존 레코드를 NSMutableArray로 역 직렬화하고 새 레코드를 추가 한 다음 새 NSMutableArray를 다시 직렬화해야한다는 것을 이해합니다. Generics 또는 NSMutableObject를 사용하여 정적 함수가있는 클래스를 만드는 것을 선호합니다.

이제 질문은 다음과 같습니다. 1. 위에서 설명한 시나리오를 고려하여 여기서 직렬화 / 역 직렬화하는 가장 좋은 방법은 무엇입니까? 속성 목록 및 NScoding 프로토콜에 대해 읽었습니다. NSCoding 프로토콜을 사용하는 경향이 있습니다. 올바른 접근 방식일까요?

  1. 직렬화해야하는 모든 속성이 키 / 값 쌍으로 언급되는 initWithCoder 함수를 구현해야한다고 읽었습니다. 일부 속성이 사용자 지정 유형 인 경우 여기에서 무엇을해야합니까? 예를 들어, "room"이라는 클래스에 대해 "distance"유형의 length라는 속성이 있습니다. 여기서 "distance"는 정수 유형의 두 가지 속성 (피트 및 인치)이있는 클래스입니다. 그리고 예,이 원거리 공간은 내 문제에 대한 해결책을 이해하는 예일뿐입니다.

  2. 사용자 지정 형식의 일부 속성이있는 사용자 지정 형식의 serialization / deserialization 개체에 대한 자세한 내용은 다시 한 번 감사하겠습니다.

유진 두드 니크

iOS에서 NSData로 무언가를 직렬화하는 가장 간단한 방법은 NSKeyedArchiver / NSKeyedUnarchiver를 사용하는 것입니다. 커스텀 객체의 경우 NSCoding 프로토콜을 구현해야합니다.

배열에 저장하는 객체는 NSCoding도 지원해야합니다.

그러나 역 직렬화 할 때 NSMutableArray 개체 대신 변경 불가능한 NSArray 개체를 받게됩니다. 변경 가능한 인스턴스를 얻으려면

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self)
    {
        myMutableArray = [NSMutableArray arrayWithArray:[aDecoder decodeObjectForKey:@"myMutableArray"]];
    }
    return self;
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Jackson의 다형성 직렬화 / 역 직렬화 및 사용자 지정 직렬화 / 역 직렬화

분류에서Dev

잭슨 사용자 정의 직렬화 및 역 직렬화

분류에서Dev

비트 크기 정의를 사용한 Java 사용자 정의 직렬화 및 역 직렬화

분류에서Dev

사용자 정의 모양의 Konva 직렬화 및 역 직렬화

분류에서Dev

Swift3에서 객체의 직렬화 및 역 직렬화

분류에서Dev

YamlDotNEt 및 C #의 사용자 지정 형식 클래스를 사용하여 중첩 된 YAML 역 직렬화

분류에서Dev

여권 직렬화 / 역 직렬화 사용자의 콜백 기능에 대한 혼란

분류에서Dev

JSON 문자열을 C # 및 Unity의 개체로 역 직렬화

분류에서Dev

Java의 사용자 지정 열거 형 값에 대한 JSON 응답 역 직렬화

분류에서Dev

잭슨 역 직렬화는 사용자 정의 디시리얼라이저에 직렬화를 호출하지

분류에서Dev

JsonConverter를 사용한 C #의 사용자 지정 JSON 역 직렬화

분류에서Dev

C # / JSON 개체 직렬화, 역 직렬화 및 대 / 소문자 문제 없음

분류에서Dev

List <Bar>에 대한 Json 역 직렬화 내의 속성 설정자

분류에서Dev

하나의 클래스에서 가능한 여러 개체 이름으로 JSON 문자열 역 직렬화

분류에서Dev

TSV에 대한 클래스의 특정 속성 직렬화

분류에서Dev

역 직렬화 : 사용자 정의 클래스에서 데이터 가져 오기

분류에서Dev

자바의 역 직렬화

분류에서Dev

자바의 역 직렬화

분류에서Dev

사용자 지정 XmlSerialization을 사용하여 복잡한 개체 역 직렬화

분류에서Dev

REST API의 HTTP 메서드에 대한 요청 및 응답에서 Json 직렬화 또는 역 직렬화를 적용하는 방법

분류에서Dev

Import-CliXml을 사용하여 사용자 지정 클래스 개체의 일반 목록을 역 직렬화하려면 어떻게해야합니까?

분류에서Dev

Jackson을 사용하여 JAVA 클래스를 대상으로하는 JSON 직렬화 및 역 직렬화

분류에서Dev

직렬화 가능한 객체의 배열로 클래스를 역 직렬화하는 방법

분류에서Dev

Jackson을 사용한 사용자 지정 JSON 직렬화 / 역 직렬화

분류에서Dev

JAXB 역 직렬화를 통한 개체 생성 사용자 지정

분류에서Dev

자식 직렬화 및 역 직렬화

분류에서Dev

기본 배열에 대한 사용자 지정 Gson 역 직렬화

분류에서Dev

사용자 정의 형식의 날짜를 역 직렬화

분류에서Dev

ServiceStack은 객체로 사전 직렬화 및 역 직렬화

Related 관련 기사

  1. 1

    Jackson의 다형성 직렬화 / 역 직렬화 및 사용자 지정 직렬화 / 역 직렬화

  2. 2

    잭슨 사용자 정의 직렬화 및 역 직렬화

  3. 3

    비트 크기 정의를 사용한 Java 사용자 정의 직렬화 및 역 직렬화

  4. 4

    사용자 정의 모양의 Konva 직렬화 및 역 직렬화

  5. 5

    Swift3에서 객체의 직렬화 및 역 직렬화

  6. 6

    YamlDotNEt 및 C #의 사용자 지정 형식 클래스를 사용하여 중첩 된 YAML 역 직렬화

  7. 7

    여권 직렬화 / 역 직렬화 사용자의 콜백 기능에 대한 혼란

  8. 8

    JSON 문자열을 C # 및 Unity의 개체로 역 직렬화

  9. 9

    Java의 사용자 지정 열거 형 값에 대한 JSON 응답 역 직렬화

  10. 10

    잭슨 역 직렬화는 사용자 정의 디시리얼라이저에 직렬화를 호출하지

  11. 11

    JsonConverter를 사용한 C #의 사용자 지정 JSON 역 직렬화

  12. 12

    C # / JSON 개체 직렬화, 역 직렬화 및 대 / 소문자 문제 없음

  13. 13

    List <Bar>에 대한 Json 역 직렬화 내의 속성 설정자

  14. 14

    하나의 클래스에서 가능한 여러 개체 이름으로 JSON 문자열 역 직렬화

  15. 15

    TSV에 대한 클래스의 특정 속성 직렬화

  16. 16

    역 직렬화 : 사용자 정의 클래스에서 데이터 가져 오기

  17. 17

    자바의 역 직렬화

  18. 18

    자바의 역 직렬화

  19. 19

    사용자 지정 XmlSerialization을 사용하여 복잡한 개체 역 직렬화

  20. 20

    REST API의 HTTP 메서드에 대한 요청 및 응답에서 Json 직렬화 또는 역 직렬화를 적용하는 방법

  21. 21

    Import-CliXml을 사용하여 사용자 지정 클래스 개체의 일반 목록을 역 직렬화하려면 어떻게해야합니까?

  22. 22

    Jackson을 사용하여 JAVA 클래스를 대상으로하는 JSON 직렬화 및 역 직렬화

  23. 23

    직렬화 가능한 객체의 배열로 클래스를 역 직렬화하는 방법

  24. 24

    Jackson을 사용한 사용자 지정 JSON 직렬화 / 역 직렬화

  25. 25

    JAXB 역 직렬화를 통한 개체 생성 사용자 지정

  26. 26

    자식 직렬화 및 역 직렬화

  27. 27

    기본 배열에 대한 사용자 지정 Gson 역 직렬화

  28. 28

    사용자 정의 형식의 날짜를 역 직렬화

  29. 29

    ServiceStack은 객체로 사전 직렬화 및 역 직렬화

뜨겁다태그

보관