NSString <-> const char *


const char* convert = "hello remove this: *";

NSString *input = [[NSString alloc] initWithUTF8String:convert];// convert 

//remove * FROM THE STRING          
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"*"]; 

// REPLACE * WITH NOTHING                   
input = [[input componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];

// CONVERT BACK         
const char *converted_back = [input UTF8String]; 


참고 링크 : http://stackoverflow.com/questions/10284011/convert-const-char-to-nsstring-and-convert-back-nsautoreleasenopool





카카오의 친구 정보를 받아서 Unity3D로 값을 넘겨 줄때 Json 으로 변환 하여 NSString 을 넘겨 주는 방식으로 하다 보니 


malloc error이 발생 하였다... 


해결 방법은


char *MakeStringCopy(const char* string) {

    if (string == NULL)

        return NULL;

    char* res = (char*) malloc (strlen(string) + 1 );

    strcpy (res, string);

    return res;

}


extern "C" {

    const char *_GetFriendInfoList() {

        

        

        NSString *JSONString = @"";

        NSData *jsonData = [NSJSONSerialization dataWithJSONObject:[[DataManager manager] friendList]

                                                           options:0

                                                             error:nil];

        if (!jsonData) {

            NSLog(@"Error");

        } else {

            

            JSONString = [[NSString alloc] initWithBytes:[jsonData bytes] length:[jsonData length] encoding:NSUTF8StringEncoding];

            NSLog(@"JSONString = %@",JSONString);

            return MakeStringCopy([JSONString UTF8String]);

        }

        

        return MakeStringCopy([JSONString UTF8String]);

        

    }

    float getTest() {

    return 0.5f;

    }

}


1.NSString형을 int형으로 변경 하는 방법.

NSString *str = @"7";

int i = [str intValue];

NSLog(@"i = %d",i);


2.int형을 NSString형으로 변경 하는 방법.

int i = 7;

NSString *str = [NSString stringWithFormat:@"%d",i];


이상입니다. ^^



로그인 view를 만드는 프로젝트를 하는 중에 E-mail 텍스트 필드나 유져 아이디를 입력 받는 텍스트 필드는

영어만 들어 가야 하는 조건이 많이 있습니다.

따라서 그 텍스트 필드의 값 NSString를 ASCII로 변환 하여 사용 하는 법이 편할것 같습니다.

변환 하는 법은

for(int i = 0 ; i < [[temp text] lenght] ; i++)
{
      int c = [[temp text] characterAtIndex:i];

    NSLog(@" char %d = %d",i,c);

}

이렇게 하여 각 특수 문자의 아스키 코드값을 확인 해도 되고 NSString의 길이 만큼 쪼개서 아스키 코드값을 볼수 있게 됩니다.

여기서 temp는 텍스트 필드 명입니다. ^^

참고)  @   = 64
           .     = 46

이 되겠습니다. E-mail 만들시에 @가 들어가 있지 않으면 팝업창을 띄어 주기 위해서 이 부분을 이용해도 될것 같네요 ^^

이상입니다.~!~!

NSString - > NSData

NSString *temp = [[NSString alloc] initWithData:tempData encoding:NSUTF8StringEncoding];

[temp release];



NSData - > NSString

NSData *temp = [tempNSString dataUsingEncoding:NSUTF8StringEncoding];


이상입니다..!!!!

char* -> NSString

char szText[] = "hi...";
NSString* nsStr = [NSString stringWithUTF8String: szText];

char strDocumentDirectory[1024];
[pDocumentsDirectory getCString:strDocumentDirectory maxLength:sizeof(strDocumentDirectory)-1 encoding:NSASCIIStringEncoding];

NSString -> char*

NSString* nsStr = @"hi I'm NSString";
const char* strTmp = [nsStr UTF8String];



---------------------------------------------------------------
출처]http://manwooo.egloos.com/834519

// 빈 문자열 생성하기
NSString *str1 = [NSString new];


//일반적인 문자열 대입 - 문자열 상수

str1 = @"web2log.com";


//포멧 문자열(stringWithFormat) - 변수 대입방식
NSString *str2 = [NSString stringWithFormat:@"Hi, %@",str1];


//포멧 문자열(stringWithFormat) - 숫자 대입방식

NSString *str3 = [NSString stringWithFormat:@"Integer, %d",123456];


//포멧 문자열(stringWithFormat) - 문자열 대입방식

NSString *str4 = [NSString stringWithFormat:@"stringWithFormat, %s","web2log.com"];


//Object-C형식 문자열

NSString *str5 = [NSString stringWithString:@"web2log.com"];  


//C형식 문자열

NSString *str6 = [NSString stringWithCString:"web2log.com"];


//문자열 Append (추가)

NSString *str7 = [str6 stringByAppendingString:@":web2log.com"];


//문자열 길이 구하기

int len = [str7 length];


//String형을 int형으로 형변환하기

int vInt = [@"1234" intValue];


//String형을 float형으로 형변환하기

float vFloat = [@"1234.56" floatValue];


//메모리 할당한 문자열 변수 제거

[str1 release];


------------------------------------------------
참고]http://web2log.com/38


NSString를 int로 변환 하는 방법.


NSString *nStr;
nStr = @"16";
int j = [nStr intValue];



int를 NSString로 변환 하는 방법.

int j = 0;
NSString *nStr = [NSString stringWithFormat:@"%d",j];


=======================================================================


+ Recent posts