티스토리 툴바


String 인코딩



 Objective-C의 string의 문자 인코딩에 있어 많은 함수를 제공한다.


endcoding을 통한 string 생성

char *utf8String = /* assume this exists */ ;

NSString *stringFromUTFString =

[[NSString alloc] initWithUTF8String:utf8String];

 

char *macOSRomanEncodedString = /* assume this exists */ ;

NSString *stringFromMORString =

            [[NSString alloc] initWithCString:macOSRomanEncodedString

                              encoding:NSMacOSRomanStringEncoding];

 

NSData *shiftJISData =  /* assume this exists */ ;

NSString *stringFromShiftJISData =

            [[NSString alloc] initWithData:shiftJISData

                              encoding:NSShiftJISStringEncoding];

-       C stringinitWithCString:encoding 과 같은 메소드를 사용하여 NSString 생성

-       C string의 문자 인코딩을 정확히 명시할 것!

 

 

UTF-8로 인코딩된 NSString ASCII 사이의 변환

unichar ellipsis = 0x2026;

NSString *theString =

[NSString stringWithFormat:@"To be continued%C", ellipsis];

 

NSData *asciiData =

[theString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

 

NSString *asciiString =

[[NSString alloc] initWithData:asciiData encoding:NSASCIIStringEncoding];

 

 

// NSLog를 통한 결과

// Original: To be continued… (length 16)

// Converted: To be continued... (length 18)

-       NSString C string을 직접 사용하기 위한 다음과 같은 많은 메소드 제공

(stringWithCString:,initWithCString:,

initWithCString:length:, initWithCStringNoCopy:length:freeWhenDone: )

-       위의 메소드들은 default C string을 사용하기 때문에 변환하는 과정에 많은 정보가 손실될 수 있음




더 자세한건 나중에...



출처 : http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/CreatingStrings.html#//apple_ref/doc/uid/20000148-CJBCJHHI


저작자 표시
Trackback 0 | Comment 0

저도 막연하게 될것 같다라고만 생각했었는데 호출이 되지 않는군요.

잠깐 검색해보니 비슷한 의문사항인것 같은데 도움이 되시기를 바랍니다.

핵심은 결국 객체에 대한 포인터를 이용하여 해당 함수를 호출해주는거네요.



#import <Cocoa/Cocoa.h>

id refToSelf;

@interface SomeClass: NSObject
@end

@implementation SomeClass
- (void) doNothing
{
        NSLog(@"Doing nothing");
}
@end

int otherCfunction()
{
        [refToSelf doNothing];
}


int main()
{

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    SomeClass * t = [[SomeClass alloc] init];
    refToSelf = t;

    otherCfunction();

    [pool release];
}
저작자 표시
Trackback 0 | Comment 0

이 글은 재영쿤님의 2010년 10월 7일의 미투데이 내용입니다.

Trackback 0 | Comment 0

이재영's Blog is powered by Daum & tistory