0.4 [NSMutableString] 문자열 ++ FK(3)

View Comments

0.4 문자열 ++??

Yenos~.~

가끔 바빠질때면,, 메모를 잘 못하게된다... 이러 안된다.. 게을러지면 안되는데..ㅋㅋㅋㅋㅋㅋ

저번에는 문자열관련 쓸만한(?) 메소드 들을 알아보았는데.. 이번엔 뮤터블이란 친구가 등장한다...





0.01 NSMutableString.


원래 NSString은 내용의 변경이 불가능하다.. 한번 글자를 치면 끝! 못바꿔 .. 

이러한 말도 안되는 경우를 풀어주는 녀석이 바로  NSString 하위에 존재하는 NSMutableString이다. 

하위에 존재한다는 말은 대부분 NSString의 메소드를 사용할 수 있다는 이야기다. 뭐그리 독특한녀석은 아니다??



그래서 stirngWithFormat, 그외 전 시간에 공부했던 모든것들을 이용할 수있다!

그럼

이제 다름은 무엇인가..공부해봅시다


먼저 NSMutableString을 이용하기에 필수적으로 필요한 stringWithCapacity 메소드를 보자..


**(id) stringWithCapacity: (unsigned) capacity;


이녀석은 이렇게 사용된다.. Capacity??  음 뭔가 저장해야될것같은뎈ㅋㅋ 충전해야될거가테..

어.. 근데 맞았어.. 

capacity는 문자열에 대략적인 크기를 말해준다. 즉 내가 문자열을 얼마나 쓸건지 대략적으로 메모리를 capacity값에 넘겨준다.


' 내가 30mbyte 의 문자열을 쓸거니깐 넌 미리 메모리를 할당해놔.. 그게 빠르겟지! 얼렁!!!'


요런 느낌?? ㅋㅋㅋ

핡 ! 할당끝~ 추가하자!!


**(void) appendString: (NSString *) aString;

   (void) appendFormat: (NSString *) format, ...;


이 두녀석이다..  appendString은 먼저 초기 인수의 문자열을 받는놈의 문자열객체 끝에 복사한다!, appendFormat은 새로운 문자열 객체를 만드는게 아니라! 이미 받은 놈의 문자열 객체 끝에 문자열을 추가한다.. 

뭔 개가 왈왈왈.. ㅋㅋㅋㅋㅋㅋㅋㅋ ㄲ



쉽죠? 

선언하고 넉넉하게 60을 잡고 

appendString으로 초기 string값을 정해준다 "Hello Yenos! howOld are U?" 로... 

그리고 이뒤에 추가할때 사용하는게 appendFormat이란 이야기!! 

그러

므로

NSLog값은 이렇게 찍힌다. 

"Hello Yenos! HowOld are U?Im ae ae ae ae ae 21"



이제 만들고 넣어봤으니.. 빼봐야지..

 

**(void) deleteCharactersInRane: (NSRange) ragnge;


간단히 축구 명단을   짜보고 선수들을 뺴보자.. 



메모리 60 할당.

플레이어 명단 제작 뚜둥!

퇴출할 녀석을 검색하자 오호! 저번에 공부했던녀석.. 

지성 팍을 찾아라 rangeOfString! (++ 은 공백까지 깔끔히 해주기위한 계략..)

그리고 단순히 deleteCharacertInRange 메소드를 이용해 getout!



쓸것도 애매하게 끊겨서.. 음 

몰라 Pass!  

다음은 COllection Class에 대해 탐구해봐야지..

 



0 Comments (+add yours?)

Leave a Reply

Tracbacks (+view to the desc.)

0.3 [NSString,Compare] 점점 알아가는군! FK(2)

View Comments

03. 점점 알아가는군! FK(2)


Yenos!

주말을 푹 푹쉬고, 프로그래밍 따윈안하고.. ㅋㅋㅋ 오늘은 문자열 공부..

다시 메모를 시작해볼까나..




추천부탁드려요:)

감사합니다~!




0.01 NSString..


문자열을 다루는 클래스인 NSString ... 예전엔 멋도모르고 썻지만 .. 무슨 기능들이 숨어있는지..

찾아봐야지 하나나하나..

먼저

간단히 NSString? 을 어떻게 쓸것인가..? 

기본적인 stringWithFormat 메소드 부터 살펴보면,,


** (id) stringWithFormat : (NSString*) fortmat, ...;


간단함.. 위와같은 형식으로  아래와같이 이용해주면된다!


.


NSString 으로 height값을 하나 잡아주고

 NSString stringwithFormat 선언을 통해 height의 문자열을 입력해줌...쉽죠?  


NSLog 값은 오른쪽아래 Alloutput에 위와 같이.. 출력하게해줌..

%@ 값을 해주어야.. 문자열이라고 인식하고 이쁘게 출력을 해준다.. 음 쉽네..

이제 

문자열을 더 유용하게! 이용할 수 있는 간단한메소드를 겅부..





0.02 length


랭ㄸ씅~ 문자열의 개수를 반환하는 length 메소드의 원형은.. 


** (unsigned int) length;

이렇게 생기구.. 



이와 같이.. 응용하여 사용 할 수 있음..

height값은 아까~! 저 위에 height 값.. 

height값에길이가 10보다 크므로 NSLog값을 출력하게 된다..

ㅋㅋㅋㅋ 이용하기 참 쉽죠잉??






0.03 isEqualToString


두 문자열이 같은가??? 를 판별해주는 녀석.. 일단 생김새는

**  (BOOL) isEqualToString: (NSString *) aString;

이렇게 생김.. 이녀석도 간단하게 생겼다

코드를 또보자!



요로콤.. 이용할 수 있다.

현재 thing1 과 thing2 는 maroon5 라는 값으로 값이 같다.. 

그러므로 is EqualTostring을 이용해서.. 

같니? 같으면 로그값 출력!






0.04 Comapare


위에 isEqualToString은 오직 문자열의 내용이 같은지 틀린지만 판별해주지만!!

Compare 이놈은 문자열을 하나하나 비교하여.. 두 문자열이 오름차순인지,,, 내림차순인지,, 완전히같은지!

를 알려주는 똑똑한 놈이다  Compare의 값을 반환하는 NSComparisonResult  가 어떻게 생겻나 보자..


**typdef enum _NSComparisonResult{

NSOrderedAscending = -1,

NSOrderSame,

NSOrderedDescending

}NSCOmpariosnResult;


이 선언은 오름차순=-1, 같은 값=0, 내림차순= 1 로   나타내주겠다는 의미다.

그 다음으로 아래 코드를 보면 이해가..



 abc 랑 xyz랑 -1 이냐?(오름차순이냐?)  음! 맞네!

그래서 NSLog 출력..

그런데 

Compare의 문제가 있어.. 그것은 대소문자를 구분해버림!

음 Yenos 와 yenos를 구분해버려서 NSORderedSame 값을 반환하지 않는다는것... 참.. 쓰기 곤란해졌지.. 

그래서 operation 이라는 메소드를 추가하지.. 으하핳.


**(NSComparisonResult) compare: (NSString *) string options: (unsigned) mask;


option의 파라미터 값은 비트 마스크값이야.. 비교 연산자를 넣는거지! 

OR? ANd? 같은것들.. 뭔말인지모르겟다..

역시 코드를 보면 한눈에 보일것이다!


hello 와 Hello 를 제대로 비교하는것이지.. 

그냥 compare만 이용하면 같다고 안나와! 반환을 못해ㅠㅠ 그래서 option으로 여러가지를 넣어줘봣어..

물론 이코드에선 모두 이용되지 않았지만 어떻게 쓰는 지 보기위해!

옵션에 종류엔 요론게 있지!


**NSCaseINsensitiviewSearch :  대문자 와 소문자가 같은 것으로 인식!

  NSLiteralSearch : 대소문자를 정확하게 보아서 같은지를 비교!

  NSNumbericSearch : 문자열안에 숫자를 실제 숫자로 인식하는것!

  (100 과 99 문자로 보았을때 Aski 값이 1이 9 보다 먼저 있으므로, 100이 99보다 앞으로 정렬이 되버려.. 이러한 문제를 해       결해주는 녀석)


뭐 이정도면.. 어떻게 쓰는지 알겠지?

옵션설정은 위에 말했듯이 and 나 or로 바꿀수도있고 참 신박하게 잘만들었지.. 






0.05 hasPrefix,hasSuffix


뭐냐 얘네들은?? 음.. 이런경우.. 예를들어 프로그램에서 동영상을 찾아야한다! 

그럴경우 확장자를 보고 리스트를 뽑아주겠지.. 그럴때  확장자를 이용해서 .mp4나 .avi 를 문자로 검색하는 방법으로!

그러면.. 내가 원하는 mp4 avi 가 문자열에 있나요? 를 판별해서

촵촵~ 뽑아주는 녀석들이 필요할거다..  이런 유용한 메소드가 아래 두개다!!


** (BOOL) hasPrefix: (NSString *) aString;

**(BOOL) hasSuffix: (NSString *) aString;


hasPrefix는 맨 처음 앞단어를 비교해주고..

hasSuffix는 맨 마지막 단어를 비교해주고,,, 역시  모든 코드를!!



보이는가!  output이?? 아마 둘다 출력되지..

맨 앞단어가 Yenos 이고, 마지막이 .pages이니깐 모두 트루!!!


그런데.. !

혹.. 중간에 원하는 문자열을 검색하고 싶다면???


**(NSRange) rangeOfString: (NSString *) aString

 


 한방에 정리? 끝? 굿? 

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

여기까지 간단히 여러가지 메소드드를 짧고 굵게 알아보았다

다음엔 Mutable String을 알아보자











2 Comments (+add yours?)

Leave a Reply

Tracbacks (+view to the desc.)

0.2 [NSRange,NSSize..] 이게뭐꼬..FK(1)

View Comments

02. 이게뭐꼬..Foundation kit (1)

Yenos!

음..foundation kit 이것은! 코코아의 한 프레임워크로 다양한 하위레벨의 데이터 클래스, 자료타입등을 가지고 있다!

사실.. 왜 여기서부터 보냐면.,,, 

object -c 는 모양새만 다르지 c++ 과 비슷하다.. 당연히 객체언어니깐..  

충분히   이런 메모를 하지 않고도 터득할 수 있다.. (c++을 해보았다면 더더욱!)

그래서


최대한 빠르게 xcode에 다가가야하니깐!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 

실용에 학문에 기대겠네.. 나중에 망하면 다시 보면되니깐.... 


0.01 NSRange..


항상 코드부터 보고!  어떻게 돌아갈건지에대해 생각해보자.. 우하..


NSRange 라는 녀석은 typdef 정의된것과 같이 범위를 나타내준다.

뭐? 어떤범위..? 위치와 길이. 응??

"my First yenos.-c Struct"  에서 "yenos." 문자열의 위치는 10 길이는 6 !!

NSRange 타입의 range 값 초기화 

후로.

값을 설정하는 방법엔 3가지가 있다.


하나.

range 하위값인 location, length를  각각 설정해주기!



오미!!! 배열로도 단방에 된다...



셋.

뭐냐 난 정의되어 있는 함수임.. 간단하지???

위와 같은 방법으로 간단히 설정가능..  다음으로~





0.02 NSpoint..NSSIze..



보는 바와같이  NSPoint는 좌표

                     NSSize는 가로 높이

                     NSRect는 좌표와,가로,높이

로. 이루어진다는 것을 알 수 있다.!


이 외에  NSMakePoint(),NSMakeSize(),NSMakeRect() 등과 같이 간편한 함수도 있으니..  

너무 걱정안해두 된다.. 저걸 어떻게 쓰는지에대한 막연함은.. 

다음은 문자열로 ㄱ ㄱ 싱.!




0 Comments (+add yours?)

Leave a Reply

Tracbacks (+view to the desc.)

01. 랄라라 objective-c 어디서 코딩하지?...

View Comments

01. objective - c 어디서 코딩하지..?

Yenos~

처음 내가 들었던 생각.. 그당시엔 맥도 없었는지라.. ㅋㅋㅋㅋ 



1. x-code를 설치한다. 


2. 실행하고 osx application 탭에 command Line Tool 을 선택!. 






3. 대충 네임 이리저리 쓰고.. Type 칸에! foundation을 선택!






4.  main.c 에 다른 언어 코딩하듯이 하면 된다.. 






참 쉽지만.. 난 항상 잊어버리니깐..  모든걸 다 적어 놓을테다!!

0 Comments (+add yours?)

Leave a Reply

Tracbacks (+view to the desc.)

Newer Entries Older Entries