반응형
NSA ray를 NSData로 변환하는 방법은 무엇입니까?
누가 변환하는 방법을 알려줄 수 있습니까?NSArray
완전히NSData
나는 있습니다.NSArray
저는 그것을 다른 사람에게 보내야 합니다.NSInputStream
그러기 위해서는 변환이 필요합니다.NSArray
완전히NSData
.
제발 도와주세요, 제가 여기 갇혔어요.
NSKidedArchiver(Garrett 게시 링크의 마지막 문장)를 사용합니다.
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:array];
의 모든 개체는array
다음을 준수해야 합니다.NSCoding
의전이러한 개체가 사용자 지정 개체인 경우 인코딩 및 디코딩 개체를 자세히 읽어야 합니다.
이렇게 하면 상당히 읽기 어려운 속성 목록 형식이 생성되지만 매우 광범위한 개체를 처리할 수 있습니다.매우 단순한 배열(예: 문자열)을 사용하는 경우 NSPropertyListSerialization을 사용하면 다음과 같이 조금 더 간단한 속성 목록을 만들 수 있습니다.
NSString *error;
NSData *data = [NSPropertyListSerialization dataFromPropertyList:array format:NSPropertyListBinaryFormat_v1_0 errorDescription:&error];
또한 유선에서 읽을 수 있도록 하려면 XML 형식 상수를 전달할 수 있습니다.
NSData를 다시 NSRray로 변환하는 방법은 다음과 같습니다.
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data]
이 코드를 사용했습니다.
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];
스위프트:
let data = NSKeyedArchiver.archivedData(withRootObject: jsonArray)
print(data)
할 수 있어요
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에서 더 이상 사용되지 않았습니다.
스위프트 5
let data = try! NSKeyedArchiver.archivedData(withRootObject: array, requiringSecureCoding: true)
언급URL : https://stackoverflow.com/questions/1286212/how-to-convert-nsarray-to-nsdata
반응형
'itsource' 카테고리의 다른 글
자바스크립트를 시작할 때 세미콜론을 시작하는 목적은 무엇입니까? (0) | 2023.07.31 |
---|---|
"display:none"이 이미지 로드를 방해합니까? (0) | 2023.07.31 |
저장 프로시저에서 권한을 찾기 위한 오라클 쿼리 (0) | 2023.07.31 |
Cordova 명령줄 인터페이스를 사용하여 서명된 APK 파일을 만드는 방법은 무엇입니까? (0) | 2023.07.31 |
파이썬의 배열 필터? (0) | 2023.07.26 |