code

NSString 값을 NSData로 어떻게 변환합니까?

codestyles 2020. 9. 28. 09:09
반응형

NSString 값을 NSData로 어떻게 변환합니까?


NSString값을 NSData어떻게 변환 합니까?


NSString* str = @"teststring";
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];

NSString *str = @"helowrld";
// This converts the string to an NSData object
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

링크 에서 참조 할 수 있습니다.


하다:

NSData *data = [yourString dataUsingEncoding:NSUTF8StringEncoding];

그런 다음 NSJSONSerialization:JSONObjectWithData.


NULL 종결 자에 대한 답변 수정

의견, 공식 문서 및 확인 에 따라이 답변은 의심되는 NULL 종결 자 제거와 관련하여 업데이트되었습니다.

  1. 문서화로 dataUsingEncoding : :

    반환 값

    dataUsingEncoding:allowLossyConversion:두 번째 인수로 NO 를 호출 결과

  2. 문서화 된 바와 같이 최대 길이 : 인코딩 : getCStringcStringUsingEncoding : :

    에서 반환 한 데이터 는 NULL 종결자가 없으므로dataUsingEncoding:allowLossyConversion: 엄격한 C- 문자열 이 아닙니다.


Swift Developer가 여기 오시는 경우

NSString / String에서 NSData로 변환하는 방법

var _nsdata = _nsstring.dataUsingEncoding(NSUTF8StringEncoding)

목표 -C :

NSString *str = @"test string";
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:str];
NSString *thatStr = [NSKeyedUnarchiver unarchiveObjectWithData:data];

빠른:

let str = "test string"
let data = NSKeyedArchiver.archivedData(withRootObject: str)
let thatStr = NSKeyedUnarchiver.unarchiveObject(with: data) as! String

첫째로, 당신은 사용해야하는 dataUsingEncoding:대신 거치지 UTF8String. 해당 인코딩에 문자열 UTF8String이 필요할 때만 사용 합니다 C.

그런 다음의 경우 메시지 대신 UTF-16전달 하십시오 .NSUnicodeStringEncodingNSUTF8StringEncodingdataUsingEncoding:


스위프트 3의 경우 대부분에서 변환됩니다 StringData.

let myString = "test"
let myData = myString.data(using: .utf8)
print(myData) // Optional(Data)

NSString *str = @"hello";
NSData *data = [NSData dataWithBytes:str.UTF8String length:str.length];

목표 -C :

NSString에서 NSData로 :

NSString* str= @"string";
NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding];

NSData에서 NSString으로 :

NSString* newStr = [[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding];

빠른:

데이터에 대한 문자열 :

var testString = "string"
var somedata = testString.data(using: String.Encoding.utf8)

데이터를 문자열로 :

var backToString = String(data: somedata!, encoding: String.Encoding.utf8) as String!

NSString *str = @"Banana";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:true];

목표 -C

NSString *str = @"Hello World";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];

빠른

let str = "Hello World"
let data = string.data(using: String.Encoding.utf8, allowLossyConversion: false)

참고 URL : https://stackoverflow.com/questions/901357/how-do-i-convert-an-nsstring-value-to-nsdata

반응형