NSString을 NSData로 변경하는 내용을 간단하게 포스팅하려구요.

저도 자주 까먹어서, 정리해두는게 좋을 것 같아서요.


꼭 읽으셔야 하는 내용은 아닙니다.


일단 NSString을 왜 NSData로 변경하는지에 대해서 저의 이유를 말씀드리면 다음과 같습니다.


1. 서버에서 XML 내용을 그냥 print로 찍어서 돌려줄 때, AFNetworking에서 Serializer를 AFHTTPResponseSerializer로 받아야 하는데요.

    그 때 만약에서 XML 내용이면 파싱하기 위해서 NSXMLParser를 사용하는데, 그 때 NSData 타입으로 변경해야 하기 때문입니다.


쓰고나니깐 복잡해보이는데요.

암튼 그렇습니다. 


먼저 NSString을 NSData로 변경하는 소스는 다음과 같습니다. 


NSString *response = @"~~~blrblrblrblrblrblr";   

NSData *data = [response dataUsingEncoding:NSUTF8StringEncoding];


간단하네요!!



다음으로 AFNetworking 이용해서 위 내용 응용하면요.


    NSString *requestUrl = @"http://ipAddress";

    

    AFHTTPRequestOperationManager *afm = [AFHTTPRequestOperationManager manager];

    afm.responseSerializer = [AFHTTPResponseSerializer serializer];

    [afm GET:requestUrl  parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {

        NSString *response = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];

        NSData *data = [response dataUsingEncoding:NSUTF8StringEncoding];       

        NSXMLParser *XMLParser = [[NSXMLParser alloc] initWithData:data];

        XMLParser.delegate = self;

        [XMLParser parse];        

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

        NSLog(@"Error: %@", error);

    }];



+ Recent posts