C언어의문자열은 char를기준으로
한 ASCII문자열입니다.
하자만Objective- C언어의
문자열클래스가 제공하는 문자열은 unichar유니코드
표준에따른 멀티바이트 문자입니다.
1.String 클래스의종류
-NSString: 내용을 변경할수 없는
문자열 클래스
-NSConstantString: 문자열상수로 주소를 변경할 수 없는 문자열 클래스
-NSMutableString: 내용을변경할 수 있는 문자열 클래스
NSString객체에 문자열을
대입할때는 NSConstantString 타입을대입할 때는 일반 value형
변수처럼직접 대입이 가능하며 리턴도 가능합니다.
단주의할 점은 출력할 때 %s를사용하면 안된다는
점입니다.
%s를사용하게 되면 ascii문자(8비트)단위로 읽어서문자열을 출력하므로 이상한 문자열을 출력하게될것입니다.
이때는 %@를이용해서 출력해야
합니다.
%@를이용하게 되면 지정된 인스턴스에 description메시지를
전송하여그 메시지의 수행 결과를 리턴 받아서 출력하게 됩니다.
2.NSString 의인스턴스 생성과 문자 코드 변환
+(id)stringWithString:(NSString *)nsstring
nsstring으로인스턴스를 생성해서
리턴
-(id)initWithString:(NSString *)nsstring
nsstring으로초기화
-(NSUinteger)length
문자의개수 리턴
-(id)initWithUTF8String:(const char
*)bytes
널문자로 끝나는 형식의 C언어문자열에서 정보를 복사한 후
초기화
-(constchar *)UTF8String
C언어문자열을 가리키는 포인터를 리턴
-(NSString*)stringWithString:(NSString
*)nsstring
메모리를할당하고 nsstring으로초기화하는
생성자의 역할을 수행 – new와같은
역할
-(NSString*)stringByAppendingString: (NSString
*)nsstring
nsstring을호출하는 인스턴스에
결합
-(BOOL)isEqualToString:(NSString
*)nsstring
문자열의값이 같은지 여부를 리턴
-(NSComparisonResult)compare: (NSString
*)nsstring
크기비교를 해서 NSComparisonResult로리턴
NSComparisonResult는열거형입니다.
-(NSString*)uppercaseString
대문자로변환해서 리턴
-(NSString*)lowercaseString
소문자로변환해서 리턴
3.NSString의 부분문자열 얻기
문자열을부분적으로 리턴 받을 수 있습니다.
-(NSString*)substringToIndex:정수
앞에서부터정수만큼 리턴
-(NSString*)substringFromIndex:정수
정수번째부터 리턴
-(NSString*)substringWithRange: :
NSMakeRange(숫자1,숫자2)
숫자1부터숫자2까지리턴
-(NSRange)rangeOfString:(NSString
*)nsstring
nsstring의위치와 개수를
리턴
NSRange는구조체로 location과length를가지고
있습니다.
===============================================
4.NSMutableString 클래스
NSString으로부터상속받아서 만들어지며
추가 및 삽입 및 삭제 등의메서드가 추가되어 있습니다.
문자열의내용을 변경할 수 있는 클래스
이클래스의 인스턴스는 문자열의 내용이 변경되도 주소가변경되지 않습니다.
================================================
5.NSData 클래스
이클래스는 바이트 배열을 다루는 클래스입니다.
파일입출력이나 네트워크에서는 문자열을 바이트 단위로사용해야 하는 경우가 있습니다.
이러한경우 NSString 만으로모든 처리를 할 수는
없습니다.
이런경우 사용되는 클래스가 NSData클래스입니다.
-(id)dataWithBytes:(const void *)bytes
(NSUinteger)length
length만큼 바이트를 할당해서메모리를
할당
-(id)initWithBytes:(const void *)bytes
length:(NSUinteger)length
bytes가지정한
위치부터 length까지로초기화
-(id)dataWithData:(NSData *)aData
aData를복사해서 메모리를
할당
-(id)initWithData:(NSData *)aData
aData의내용으로 초기화해서
리턴
-(NSUinteger)length
길이를리턴
-(cosst void
*)bytes
포인터를리턴
-(NSString *)description
문자열로리턴
==========================================================
6.NSMutableData 클래스
변경가능한 Data 클래스입니다.
데이터의추가 및 삭제 등의 메서드가 더 존재 합니다.