0.6 [NSNumber,NSValue] 깔끔한 마무리! FK(5)

View Comments

0.6 마무리를 깔끔하게!!

yenos!!!!!!!!!

여기 까지가 이제 object-c의 기본 기본기본적인 맛보기였습니다. 아 ! 이렇게 코딩하는구나!

라는 느낌만 받았다면  성공이야! 

요것이 끝나면!! 다음으로 바로 xCode에서 실질적으로 Simulator를  이용해 앱을!!!

개발합니다..ㅇ ㅡ하하핳.ㅎ핳ㅎ

마무리를 깔끔하게...

시작!








0.1 NSNumber 


넘버? 왔 더!? ?

옙 숫 to the 자!!   말 그대로 숫자의 기본타입을 가지고 있는 클래스야!

이녀석들을 어떤 메소드로 이용할 까~~?


**(NSNumber*) numberWithChar: (char) value;

**(NSNumber*) numberWithInt: (int) value;

**(NSNumber*) numberWithFloat: (float) value;

**(NSNumber*) numberWithBool: (BOOL) value;


이녀석들이 가장 일반적으로 쓰이는 것들!

어떻게 쓰는 걸까요?? 역시 코드를 봐야겟지요.



간단합죠 ?? 이제 하도 설명하니 말안해도 알겠군!!

이러한 number을  array, dictionary등 각종 관련 메소드에 이용할 수 있다!



요론식으로 .. 바로 전 메모를 열심히 공부하면 알수 있는.. 음

그렇다.. 참 쉽군 이번판?

너무 간단해서 딱히 설명이라고 할게없네.. 참

Pass 







0.2 NSValue


어떤 값이 냐면.. 그냥 임의의값?  꽤나 큰 개념이지..  임의라는 건.?.?

어떻게 써야되는거야?? 어케 생겨먹은거지??


**(NSValue*) valueWithBytes: (const void*) value objCType: (const char*) type


내가 썼지만 알아볼 수 가 없다.. 역시  함정카드야 함정카드...



편한 이해를 위해.. 일단 array를 먼저 만들어보았다!!

대략 메모리를 20으로잡고,, 배열안에 1과 2 를 넣었어! 다음으로..



이제 나왔지 NSValue! 음 위에 녀석은 뭐지?? 

일단 rect 값이 (3,3,10,20)을 가진다고 생각해! (NSRect에 관해선 아래서 자세히..ㅎㅎㅎ)

value값을 뒤에서 부터 보면  value자체의 type 형을 정해주고 있어 obCType을 통해! 

@encode는 ()안에 것을보고 알아서 적절한 Type 이름을 정해주는 컴파일러 지시자야! 

'음 적당한 이름을 지어줘야할것같다!'

그래서 정해진 타입명에 무엇이들어갈거냐?? 라고 물으면  바로 valueWithBytes 에 입력되어진 rect의 주소값! 이되어지는거지

그러므로... 

NSLog값은 다음과 같아!!



보면 좀 알겠지?? NSRect 이름의 (3,3) ,(10,20) 값이 들어가있는 것이지!

이제 array값에 추가해서 마무리를 지어보자!



요로콤 추가 해보면,  array맨마지막 배열에 value 값을 넣어준다는 이야기가 됨으로!

최종 로그값은!



깔끔하구만 ㅎㅎㅎㅎ







*NSRect ..

이놈이 의도치않게 튀어나와버렸네.. 이녀석

2번째 메모에서 조금 설명은 했지만.. 음.. 어쨋든 알아보자!


**typedf struct{

NSPoint origin;

NSSize size;

}


한마디로,, 포인터 위치와 크기를 정해주는 것이지.. 위에서 사용된게

NSMakeRect 였지?? 이녀석은 바로 사각형을 만들어주는 메소드인데.. 

(x좌표, y좌표, width, heigh)가 되는거지 ㅎㅎㅎ


위엣 사진처럼 여러가지 메소드를 포함하고 있고!!  

위아래로 수많은 응용 메소드들이 같이 출몰하고있어!! 

구글링하면 수없이 나오겠지????

사실 이많은것들을 꼭 알고갈 필요는 없거든요~~

그러므로 여기서 마무리이





크아! 이렇게!! 대략적인 object-c에관한 내용을 한번 흩어보았다!!

사실 내가 생각하는 ios 프로그래밍은..

기본적으로 이정도만 해서  대충~ 느낌만 알아가고!

실제  시뮬레이터로! 코딩하면서! 실질적인 결과물을 보면서 하는게 길지만 굵직 굵직하게 코딩하는 방법이라고 생각해!

그러므로!

'xcode에서 코딩하기' 에서 진짜 아이폰 어플을 만들어봅시다

거기서도 이렇게 내 수준에 맞게 아주아주 천천히 쉽게 설명할거야.. 


0 Comments (+add yours?)

Leave a Reply

Tracbacks (+view to the desc.)

0.5 [NSArray,NSDictionary] 유용한 CollectionClass!! FK(4)

View Comments

0.5 CollectionClass

Yenos!

..매일매일 블로깅하려고 했으나.. 와이파이의 부재로..   결국... Fail. 캬.

오늘 하면되지! 는 그닥 좋지 못한 마음가짐인데..


오늘은 Collection 클래스에대해 공부.

칼렉샨! 이란.. 모음 즉.. 묶음으로 다룰 수 있는아이들을 일컫음.

NSArray, NSDictionary와 같은 놈들을 살펴볼것이다. 





0.01 NSArray


NSArray는 말그대로 Array 배열이지!

순서를 가지는 객체들을 담는 클래스.

역시  말보다  코딩이지.



간단하다. Simple is best

NSArray With objcets 라는 놈을 써서 하나하나 배열해주는것!

이녀석 외에 간간히 보일 녀석


**(unsigned) count;

**(id) objectAtIndex: (unsigned int) index; 


이 두놈. 간단해 보입니다..  위에 코드에 이어 아래코드를 입력!



포문으로 돌려봅시다. 

array count는 예상대로 array의 갯수를 파악해주고

array objectAtIndex는 위에 Array의 index값에 들어간 녀석을 보여준다.

참으로 간단하다.. 메소드의 이름 자체가 뭐가뭔지 잘 설명해주고있다. 

이로써.

간단히 NSArray는 마무리! 








0.02 NSNmutableArray 


예상!
적중!

그냥 Array가 나왔으니 .. 이제 어느정도 편집가능한 Mutable.. 햐 완벽하지 컄ㅋㅋㅋㅋㅋ

MutableString때와 마찬가지다..


** (id) arrayWithCapacity: (unsigned) numItems;


나왔네  캐퍼시티 .. 저번과 같이 메모리를 어느정도 할당해 줘야한다.

다음은 추가 하는 놈


** (void) addObject: (id) anObject;


이녀석은 이름 그대로 배열마지막에 객체를 추가해 준다. 

코딩을 하자




먼저 capacity로 대충 크기를 설정해주고

객체로써의 배열값들을 하나하나 넣어줘 (one, two, three) 

nil은 물론 배열값 입력이 끝! 이라는 걸알려주지!

다음 

array count값을  i로 저장해주고

출력을 하면!

"one,two,three,3개의 index"  라고 출력되겠지!


이제! 더해보쟈!!

addObject를이용해서 4를 넣자.

출력을 하면!

"one,tow,three,four,4개의 index" 라고 출력이되겠지!

이제  더했으니! 뺴자!!


**(void) removeObjectAtIndex: (unsigned) index;


요놈은 원하는 인덱스의 배열값을 빼주는 녀석이야 .. 코드를 보면 휵휵이지



위에 코드에 이어서 바로 아래에

이코드를 입력하면!

"one,two,three" 요로콤 입력이 될거입니다. 

우리가 3번쨰 인덱스를 뺴기로 했으니 four가 빠지게되는거지!!! (배열의 인덱스값은 0 부터 시작되니깐!)

Mutablearray 끝!






0.03 NSDictionary


으악. 사전이야. 딕셔너리라고.!

음 사전을 찾아보자. 

사람의 방법: 사전을핀다 - 내가찾을 단어의 첫번째키값을 찾는다.(apple이면 a를 찾겠지.) - 내 두뇌와 손으로 막 찾아본다 

맥의 방법 : xcode를 키고 코딩준비한다 - 내가찾을 객체의 키값을 입력한다. - cpu가 막 돌아서 해당 키값에 알맞은 객체를 찾아낸다

대충 요런느낌으로 정보를 찾고 저장하기때문에.. 딕셔너리라고 하는 것같다는..

그냥 그렇다는 나도 초보라 혼자 생각해본거라능.. 

근데 맞는듯! 

그리고! 딕셔너리는 참고로! 타입에 상관없이 마구마구 넣을수 있어! 백과 사전이니깐!!

NSString,NSArray기타등등.. 싸잡아 넣을 수 있지! 음 

키워드와 정의! 이개념이지 딱.  그럼 살펴볼까나.. 


** (id) dictionaryWithObjectAndKeys: (id) firstobjec, ... ;


손쉽게 키를 만들수 있게 도와주는 녀석!

맛있는  코드를 보면서 하나하나 설명을 달아보자! 아!



NSString으로 케이크 하나달고

NSArray 로 피자 해서 피자 종류를 똬르르 달고

NSDictonary로 얘네들을 다 모으는거지! Cake 를 불러오는 키값은 "return Cake!" Pizza 를 불러오는 키값은 "Return Pizza!"가 되는 거지!

그래서 로그값을 출력하면!짜짜짠



요로케! 간단하다.. 햐 

좋아 그럼.

다음은 뭐지?/ 빙고!

Mutable!!!!!!!.. 사실 거의 MutableDictionary를 많이 쓴다고 보면되... 여것 저것 코딩하는것좀 보니깐,, 모두 Mutable들어간것만 쓰더라... 추가하기 편하니깐!!  추가를 해보자!

**(void) setObject: (id) anObject forKey: (id) aKey;

이자식이 추가하는 녀석인데! 물론 이에 앞서 당연히 메모리를 할당해줘야해


** (id) dictinaryWithCapacity: (unsigned) numItems;


할당 끝!!!!

 코드를 보자



 그러하다

ㅋㅋㅋㅋ 다른것 같아보이는데.. 메모리할당하고!

아래 setObject를 이용해 객체와 키를 추가하는것이지!

참 간단간단하다! 지워볼까나

**(void) removeObjectForKey: (id) aKey;



간단함?? 한방에 끝남?

해당 키값을 없애주니깐.. 당연히 내용도 없겟지??  

끝!



이제 간단간단히 이해할만한 것들이 끝나간다! 다음주가  마지막 필기!

xCode들어가기 전에 코드에대한 친밀감? 기본기?을(를)  업 업 해주기위함..

더불어

쉽지만 간단하고,, 간간히 이용되는 클래스들을 조금씩 풀어 놓은거지.. 그리고 무엇보다 혹~ 했을때 찾아볼수도있고,,

어 .. 이 폴더자체가 Dictinary였넼ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

크킄 다음은 수와 관련된 NSNumber! NSValue! 를 알아볼것이다!

@end




0 Comments (+add yours?)

Leave a Reply

Tracbacks (+view to the desc.)

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