code

NSArray를 NSData로 변환하는 방법?

codestyles 2020. 10. 6. 08:13
반응형

NSArray를 NSData로 변환하는 방법?


사람이 어떻게 변환하는 방법을 말해 줄래 NSArrayNSData? 나는 NSArray. 나는 그것을 NSInputStream. 위해 나는 변환 할 필요가해야 할 일 NSArrayNSData.

제발 도와주세요, 여기 갇혀 있어요.


NSKeyedArchiver (Garrett 링크 게시물의 마지막 문장)를 사용하십시오.

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:array];

의 모든 개체 arrayNSCoding프로토콜을 준수해야 합니다. 이것이 사용자 지정 개체 인 경우 Encoding and Decoding Objects 를 읽어야 함을 의미합니다 .

이렇게하면 읽기 어려운 속성 목록 형식이 생성되지만 매우 광범위한 개체를 처리 할 수 ​​있습니다. 매우 간단한 배열 (예 : 문자열)이있는 경우 NSPropertyListSerialization을 사용하여 좀 더 간단한 속성 목록을 생성 할 수 있습니다.

NSString *error;
NSData *data = [NSPropertyListSerialization dataFromPropertyList:array format:NSPropertyListBinaryFormat_v1_0 errorDescription:&error];

유선에서 읽을 수 있기를 원한다면 전달할 수있는 XML 형식 상수도 있습니다.


다소 관련된 메모에서 NSData를 다시 NSArray로 변환하는 방법은 다음과 같습니다.

NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data]

이것이 도움이 될지 확실하지 않지만 NSMutableArray와 NSData에 대한 링크입니다 .


이 코드를 사용했습니다.

 NSError *error;
 NSMutableData *jsonData = [[NSJSONSerialization dataWithJSONObject:yourDemoArray
                                                                   options:0 // Pass 0 if you don't care about the readability of the generated string
                                                                     error:&error] copy];

당신은 이것을 할 수 있습니다-

NSArray *array= [NSArray array];
NSData *dataArray = [NSKeyedArchiver archivedDataWithRootObject:array];

iOS 9 이상에서는 다음을 사용하십시오.

NSArray *array = [[NSArray alloc] init];
NSData *data = [NSPropertyListSerialization dataWithPropertyList:array format:NSPropertyListBinaryFormat_v1_0 options:0 error:nil];

이전 버전은 iOS 8에서 더 이상 사용되지 않습니다.


빠른 :

let data = NSKeyedArchiver.archivedData(withRootObject: jsonArray)
print(data)

참고 URL : https://stackoverflow.com/questions/1286212/how-to-convert-nsarray-to-nsdata

반응형