NSString
NSString *str1 = @"hi";
NSString *str2 = @"hello";
// ------ 문자열 길이
int len = [str1 length];
// ------ 문자열 동등비교
[str1 isEqualToString: str2];
// ------ subString
NSRange range = NSMakeRange(1,4); // index 2부터 4개
NSString *str3 = [str2 substringWithRange: range];
// ------ NSString을 C로 변환
[str1 UTF8String];
// ------ C를 NSString으로 변환
NSString *str4 = [NSString stringWithCString: argv[i] encoding: NSUTF8StringEncoding];
// ------ 텍스트 파일 읽어오기
NSString *path, *text;
NSError *error;
/*
stringByExpandingTildeInPath : '~'를 포함하는 경로를 절대경로로 반환해주는 메소드
stringWithContentsOfFile : path 위치에 있는 텍스트 파일 읽어오기
*/
path = [[@"~" stringByExpandingTildeInPath] stringByAppendingString @"/sample.txt"];
text = [NSString stringWithContentsOfFile: path encoding: NSUTF8Encoding error: &error];
NSString 과 NSMutableString
- NSString
: immutable, 수정 불가능 - NSMutableString
: mutable, 수정 가능
NSString *firstname = "Hob";
NSString *lastname = "Han";
// i) NSString을 사용하는 경우
NSString *fullname = [NSString stringWithString:firstname];
fullname = [firstname stringByAppendingString:lastname];
// ii) NSMutableString을 사용하는 경우
NSMutableString *fullname = [NSMutableString stringWithString:firstname];
[fullname appendString:lastname];
* NSString을 사용하는 경우 fullname이 가지고 있던 메모리 데이터(firstname)에 lastname을 붙이는 것이 아니라 새로운 fullname 메모리를 할당받은 후 firstname값을 복사하고 거기에 lastname을 덧붙인 것이다. 메모리가 2개 존재하게됨..(메모리 낭비)
'iOS' 카테고리의 다른 글
[iOS] 메모리 구조 및 관리(MRC, ARC) (0) | 2020.08.16 |
---|---|
[Apple Developer] 인증서 (0) | 2020.08.12 |
[Objective-C] 클래스 구조(.h 와 .m) & 메소드 (0) | 2020.08.12 |
Objective-C와 Swift 비교 (0) | 2020.08.12 |
[Objective-C] 컬랙션 클래스 NSArray, NSDictionary (0) | 2020.08.11 |