먼저 c850을 처음 50기가 파티션 생성하고 windows 7설치 후

디스크 관리에서 350기가는 data로 FAT 파티션 만들고 나머지는 osx 하기위한 파티션으로 FAT파티션 생성한다.


iATKOS_ML2.gho 파일을 다운 받은 후 (부트로더 포함된 고스트파일이 편함)

고스로로 USB 8 기가이상에 굽는다


c850 부팅 시 ACHI선택, USB3 사용안함으로 선택후 USB를 최우선 부팅으로 선택후 리붓한다.


iATKOS_MHL2 카멜레온 부트로더가 뜨면서 멀티 선택하라고 하면 iATKOS를 선택한다.


주메뉴/디스크 유틸리티로 아까 만든 osx용 파티션을 지우기하고 HFS+로 포맷하고 마운틴라이언 설치를 해당 파티션에 한다.


설치 완료 후 리부팅 되면 USB를 꼽아둔 상태면 osx파티션을 선택한 상태에서 스페이스바를 누르고 부팅옵션으로 -v -f를 하면


맥북 부팅은 된다.


현재 문제는 결국 그래픽 QE/CI를 못잡는거 -.-



'KB > iphone/mac' 카테고리의 다른 글

[c850] ML 10.8.2 hackintosh  (0) 2014.01.25
ipod touch상에서의 개발 환경  (0) 2009.01.06
[iPhoneSDK] How to make first Instance  (0) 2008.10.08
[iPhoneSDK] Using UIImageView  (0) 2008.10.08
[Obj-C] 정적 맴버 변수  (0) 2008.10.07
[iPhoneSDK] Using TabBar  (0) 2008.10.07
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


오후 9:02 2009-01-06
ipod touch상에서의 개발 환경
===============================================================


ipod cross compile
cygwin hello world
------------------------------------------
http://www.mironae.com/880
http://antirez.com/page/iphone-gcc-guide.html


ipod native compile
------------------------------------------
c hello world
http://www.modmyi.com/forums/iphone-ipod-touch-sdk-development-discussion/395631-hello-world-c.html


springboard상에서 native gui compile
http://soi.kd6.us/2008/09/27/so-i-made-my-iphone-say-hello-world/

'KB > iphone/mac' 카테고리의 다른 글

[c850] ML 10.8.2 hackintosh  (0) 2014.01.25
ipod touch상에서의 개발 환경  (0) 2009.01.06
[iPhoneSDK] How to make first Instance  (0) 2008.10.08
[iPhoneSDK] Using UIImageView  (0) 2008.10.08
[Obj-C] 정적 맴버 변수  (0) 2008.10.07
[iPhoneSDK] Using TabBar  (0) 2008.10.07
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST



How to make first Instance



2008-10-07
조경민 bro@shinbiro.com neri.cafe24.com

MyDelegateApp가 어떻게 인스턴스 되는지 알아본다






Utility based로 프로젝트를 생성하면 appdelegate.h 소스엔 아래 처럼 되어 있다.





TestUtilDelegateApp.h




#import <UIKit/UIKit.h>




@class RootViewController;




@interface TestUtilAppDelegate : NSObject <UIApplicationDelegate> {


    UIWindow *window;


    RootViewController *rootViewController;


}




@property (nonatomic, retain) IBOutlet UIWindow *window;


@property (nonatomic, retain) IBOutlet RootViewController *rootViewController;




@end



그러나 소스 어디에도 어떻게 이 클래스가 생성되는지 적혀있지 않다.

하지만 실행하면 동작을 한다.



main.m에는 다음과 같이 되어 있다.




main.m




#import <UIKit/UIKit.h>




int main(int argc, char *argv[]) {


    


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


    int retVal = UIApplicationMain(argc, argv, nil, nil);


    [pool release];


    return retVal;


}





UIApplicationMain은 아래와 같으며 4번쨰 delegateClass는 Nil이므로 UIApplication클래스가 되고

3번째 principalClassName은 nil이므로 info.plist에 있는 값을 사용한다




UIApplicaitonMain API



int UIApplicationMain (    int argc,    char *argv[],    NSString *principalClassName,    NSString *delegateClassName );


info.plist에는 MainWindow.xib 정보가 들어 있다.






MainWindow.xib는 File's Owner는 UIApplication이고 delegate가 된 것이 Test Util Application이다 그리고 이 Test Util App의 Inspector를 보면

TestUtilAppDelegate 클래스로 설정되어 있다.







마찬가지로 RootViewController에 대해서도 MainWindow.xib의 Root View Controller로 설정되어 있다.



UIApplicationMain 안에서 xib의 어떤 클래스와 연결되어 있는지 확인 한 후 여기에 설정한 클래스를 인스턴스 하게 된다.

'KB > iphone/mac' 카테고리의 다른 글

[c850] ML 10.8.2 hackintosh  (0) 2014.01.25
ipod touch상에서의 개발 환경  (0) 2009.01.06
[iPhoneSDK] How to make first Instance  (0) 2008.10.08
[iPhoneSDK] Using UIImageView  (0) 2008.10.08
[Obj-C] 정적 맴버 변수  (0) 2008.10.07
[iPhoneSDK] Using TabBar  (0) 2008.10.07
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST



Using UIImageView



2008-10-09
bro@shinbiro.com 조경민 neri.cafe24.com

본 튜토리얼에서는 UIImageView를 사용하여 TabBar의 첫 번째 뷰에 그림을 올려본다.




TabBar based 로 프로젝트를 생성한다.



먼저 이미지 파일을 두개 준비 한다. 첫 번쨰 이미지는 뷰에 첨부터 나오는 이미지로,

버튼 클릭하면 두번째 이미지로 변환시켜 본다.



1. 리소스에 이미지 추가하기



img.png와  img2.png를 데스크탑 바탕화면에서 드래그 드럽으로 워크스페이스 창 Resource노드에 추가한다.








2. FirstViewController에 UIImageView 추가 하기





FirstViewController.h




@interface FirstViewController : UIViewController {


IBOutlet UIImageView *view1;


IBOutlet UIButton *button1;


}




- (void)viewDidLoad;


- (IBAction) OnButtonDown : (id) sender;




@end






FirstViewController.m




// Implement viewDidLoad to do additional setup after loading the view.


- (void)viewDidLoad {


    [super viewDidLoad];


// [view1 setImage: [UIImage imageNamed: @"img2.png"]]; //만일 View로드 되자마자 이미지 바꾸고 싶으면 여기다가 하면 된다.


}




- (IBAction) OnButtonDown : (id) sender 


{


[view1 setImage: [UIImage imageNamed: @"img2.png"]];


}





3. TabBar의 첫 ViewController에 UIImageView를 추가하기



라이브러리 창에서 UIImageView를 추가한다.






UIImageView를 선택한 후 Tools/ Inspector 의 첫번째 탭의 Image를 img.png를 선택한다.



이렇게 하고 실행하면 바로 그림이 나온다.



4. 나머지 아울렛 연결



그러나 우리는 버튼이 눌리면 다른 그림으로 바꾸길 바라므로 아래와 같이 버튼 이벤트를 연결한다.



탭의 첫번째 First 라는 것을 오른클릭 잘해서 (잘 클릭하면 Inspector창에 FirstViewController라고 뜬다.)

아울렛들을 연결한다.

view1 -> UIImageView

button1 -> UIButton

OnButtonDown -> UIButton 후 TouchDown 연결






5. 실행하기



실행하면 img.png가 보인다.






이제 버튼을 누르면 이미지가 변경된다.




'KB > iphone/mac' 카테고리의 다른 글

ipod touch상에서의 개발 환경  (0) 2009.01.06
[iPhoneSDK] How to make first Instance  (0) 2008.10.08
[iPhoneSDK] Using UIImageView  (0) 2008.10.08
[Obj-C] 정적 맴버 변수  (0) 2008.10.07
[iPhoneSDK] Using TabBar  (0) 2008.10.07
[iPhoneSDK] MyViewController 추가하기  (0) 2008.10.07
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


오전 11:29 2008-10-07
Obj-C 정적 멤버 변수
조경민 bro@shinbiro.com
=========================================================


애플의 ObjC.pdf는 다음과 같이 써있다.


There is, however, no "class variable" counterpart to an instance variable.
그러나 instance variable의 쌍이되는 class variable이라는 건 없다.


그러면서 다음을 추천하고 있다.


static MyClass *MCLSSharedInstance;
@implementation MyClass
+ (MyClass *)sharedInstance
{
// check for existence of shared instance
// create if necessary
return MCLSSharedInstance;
}
// implementation continues


의문점:
http://lists.apple.com/archives/Objc-language/2003/Dec/msg00069.html
를 보면 @classVariables, @static, @cvar를 사용하여 class variable을 표현하고 있다. 이건 뭘까? --;
=> 어쨋든 iPhone에서는 이딴거 없다..



@interface PGPlanet : NSObject {
// Instance vars
@protected
NSString *name;
NSMutableArray *satellites;
int uniqueID;


// Class vars
@classVariables
@private
int planetCount;
}


또는


@interface Foo : Bar {
@protected
NSString *blah;
NSString *blahBlah;
@static int nextUID;


@private
@static NSMutableDictionary *instanceCache;
}


또는


@interface Foo : Bar {
@ivar { << with this being optional and any root items are considered instance vars
@protected
...


@private
...
}


@cvar {
@protected
...


@private
...
}
}

'KB > iphone/mac' 카테고리의 다른 글

[iPhoneSDK] How to make first Instance  (0) 2008.10.08
[iPhoneSDK] Using UIImageView  (0) 2008.10.08
[Obj-C] 정적 맴버 변수  (0) 2008.10.07
[iPhoneSDK] Using TabBar  (0) 2008.10.07
[iPhoneSDK] MyViewController 추가하기  (0) 2008.10.07
[iPhone SDK] ViewController 관련..  (0) 2008.10.02
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST







Using TabBar



2008-10-07 iPhoneSDK

bro@shinbiro.com 조경민 neri.cafe24.com

TabBar based로 프로젝트를 생성했을 경우 뷰에 있는 컨트롤을 동작시켜 본다.







TabBar based로 프로젝트를 생성한다.



1. FirstView에서 작업하기



먼저 FirstViewController 소스에 다음과 같이 추가한다.

이렇게 추가해 놔야 리소스 에디팅 (인터페이스 빌더)에서 아울렛을 연결할 수 있다.




FirstViewController.h




@interface FirstViewController : UIViewController {


IBOutlet UITextField *text1;


IBOutlet UIButton *button1;


}




- (IBAction) OnButtonDown: (id)sender;






@end






FirstViewControll.m




- (void)dealloc {


    [super dealloc];


}




- (IBAction) OnButtonDown: (id)sender


{


[text1 setText: @"Hello"];


}






@end



이제 저장을 한 후 MainWindow.xib를 더블클릭하여 인터페이스 빌더를 띄운다.



MainWindow.xib에 버튼과 텍스트필드를 추가한다.



문제는 MainWindow.xib안에 FirstViewController에 대한 ViewController가 없다. 

이 때 TabBar의 첫번째 First Item에서 오른클릭 해보자. 그러면 나온다;;

(이때 Tool/Inspector 창의  Class가 FirstViewController가 된 상태가 된다.)



아래처럼 button1, text1, OnButtonDown을 연결한다.






이렇게 하면 FirstView가 반응하게 된다.








2. SecondView 작업하기



SecondView는 이를 처리하는 ViewController가 프로젝트템플리트 소스에는 없다. 

따라서 먼저 SecondViewController 소스를 생성해야 한다. 



Project/ New Files 를 선택한 후

UIViewController로 선택한 후 SecondViewController이름으로 생성한다.






SecondViewController.h




@interface SecondViewController : UIViewController {


IBOutlet UITextField *stext1;


IBOutlet UIButton *sbutton1;


}




- (IBAction) OnSButtonDown: (id)sender;




@end






SecondViewController.m




- (void)dealloc {


    [super dealloc];


}




- (IBAction) OnSButtonDown: (id)sender


{


[stext1 setText: @"Hello Second"];


}








@end



저장한다.



이제 MainWindow.xib를 열어서 Second 탭바 아이템을 선택 한 후 아래처럼 Class를 SecondViewController로 변경한다.

Tools/Inspector를 연 후 네번째 탭의 Class을 아래 처럼 설정한다.








이제 SecondView.xib를 연다.

그리고 File's Owner의 inspector를 연 후 아래 처럼 class를 SecondViewController로 선택하고, 라이브러리 창으로 부터

텍스트 필드와 버튼을 올려 놓은다.








이제 File's Owner를 오른클릭하여 Second View의 sbutton1과 stext1, OnSButtonDown를 연결한다.








이제 실행 시켜 보면 두번째 뷰에서도 버튼이 동작함을 확인할 수 있다.




'KB > iphone/mac' 카테고리의 다른 글

[iPhoneSDK] Using UIImageView  (0) 2008.10.08
[Obj-C] 정적 맴버 변수  (0) 2008.10.07
[iPhoneSDK] Using TabBar  (0) 2008.10.07
[iPhoneSDK] MyViewController 추가하기  (0) 2008.10.07
[iPhone SDK] ViewController 관련..  (0) 2008.10.02
[iPhoneSDK] 버튼 클릭하기  (0) 2008.09.30
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


2008-10-06 

MyViewController 추가하기

조경민 bro@shinbiro.com neri.cafe24.com

==============================================================================



본 튜토리얼은 iphone project 템플리트 중 View based를 선택하면 나오는 환경과 동일한 환경을 

기본 windows based에서 만들어 보는 튜토리얼 이다.




먼저 Window based 로 프로젝트를 생성한다.


크게 다음과 같은 과정이다.

1. MyViewController class 생성

2. MyView.xib 생성

3. appDelegete 소스에 MyViewController 객체 생성




appDelegate.h

@class MyViewController;

MyViewController *viewController;

@property (nonatomic, retain) IBOutlet MyViewController *viewController;



appDelegate.m

#import "MyViewController.h"

@synthesize viewController;

[window addSubview:viewController.view];

[viewController release];



4. MyView.xib 에서 File's Owner를 view로 연결

- File's Owner의 Inspector 정보 탭에서 class를 MyViewController를 선택

- File's Owner를 view로 연결



5. MainWindow.xib에서 MyViewController 연결

- MainWindow.xib에 ViewController를 추가

- ViewController의 Inspector에서 NIB Name을 MyView로 선택

- ViewController의 Inspector에서 Class를 MyViewController를 선택

- My app delegate를 오른클릭하고 viewController객체를 ViewController로 연결





1. MyViewController class 생성



New File/ ViewController로 

MyViewController를 생성 (MyViewController.m, MyViewController.h가 생성됨)



2. MyView.xib 생성



New File/ Resource 중  

XIB View 선택 MyView생성 (MyView.xib 생성됨)






3. appDelegete 소스에 MyViewController 객체 생성



appDelegate.h에 다음을 추가함.

 



#import <UIKit/UIKit.h>


@class MyViewController;




@interface MyViewAppDelegate : NSObject <UIApplicationDelegate> {


    UIWindow *window;


    MyViewController *viewController;


}




@property (nonatomic, retain) IBOutlet UIWindow *window;


@property (nonatomic, retain) IBOutlet MyViewController *viewController;




@end









appDelegate.m에 다음을 추가함.

 



#import "MyViewController.h"


#import "MyViewAppDelegate.h"




@implementation MyViewAppDelegate




@synthesize window;


@synthesize viewController;






- (void)applicationDidFinishLaunching:(UIApplication *)application {    




    // Override point for customization after application launch


    [window addSubview:viewController.view];


    [window makeKeyAndVisible];


}






- (void)dealloc {  


    [viewController release];


    [window release];


    [super dealloc];


}






@end









4. MyView.xib 에서 File's Owner를 view로 연결

MyView.xib를 더블 클릭하여 연다음 먼저 xib파일의 소유자가 MyViewController임을 설정한다.



먼저 MyView.Xib의 File's Owner를 클릭한 후 Tool/Inspector를 연다음 인스펙터의 네번째 탭 ( i 표시 )의

Class Identity를 MyViewController로 설정한다.






이제 view가 대표 뷰임을 알리기 위해서

File's Owner를 오른클릭하면 ViewController의 view가 무엇인지 연결하는 view가 새로 생긴 것을 확인할 수 있는데,

이를 MyView.xib안의 View로 연결한다.






이것으로 MyView.xib에 관련된 연결은 끝이다.






5. MainWindow.xib에서 MyViewController 연결



먼저 MainWindow.xib에서 ViewController를 추가한다. 

라이브러리에서  뷰컨트롤러를 가져다가 MainWindow.xib창에 놓으면 추가된다.

MainWindow.xib에서 이 뷰컨트롤러를 MyViewController클래스로 연결하기 위해서 이다.








MainWindow.xib에서 생성된 View Controller를 선택하고 Tool/ Inspector를 클릭하여 인스펙터를 띄운다음 

첫번째 탭의  NIB Name을 MyView로 선택한다. 그러면 Loaded From MyView.nib로 바뀐다.








인스펙터 창의 네번째 탭 (i)에서 클래스를 MyViewController를 설정한다.








이제 마지막으로 MainWindow.xib의 My View AppDeligate를 오른클릭하여 viewController를 My View Controller로 연결한다.






이것으로 모든 연결은 끝났다.





뷰에 버튼 클릭하기





MyViewController.h를 다음과 같이 추가한다.

먼저 UIButton, UITextField및 버튼 클릭 이벤트 함수 등은 미리 소스 (MyViewControll.h) 에서 만들어 둬야 한다.

이렇게 해야만 MyView.xib에서 아울렛 연결 시 text1, button1등이 나타나기 때문이다.




#import <UIKit/UIKit.h>






@interface MyViewController : UIViewController {


IBOutlet UIButton *button1;


IBOutlet UITextField *text1;


}




- (IBAction) OnButtonDown:(id) sender;




@end









MyViewController.m 은 다음과 같이추가한다.




- (void)dealloc {


    [super dealloc];


}




- (IBAction)OnButtonDown: (id)sender


{


[text1 setText:@"Textext"];


}






@end







MyView.xib에서 텍스트필드와 버튼을 생성한다.






MyView.xib 의 File's Owner를 오른클릭하여 button1과 text1을 view의 버튼과 텍스트 필드와 연결한다.




 






그리고 버튼이 눌리면 실행되는 OnButtonDown이벤트를 연결한다.













이 후에는 MyView.xib의 View에서 라벨이나 버튼을 놓고 cmd + R 하면 버튼 클릭시 텍스트가 변하는 것을 볼 수 있다.

'KB > iphone/mac' 카테고리의 다른 글

[Obj-C] 정적 맴버 변수  (0) 2008.10.07
[iPhoneSDK] Using TabBar  (0) 2008.10.07
[iPhoneSDK] MyViewController 추가하기  (0) 2008.10.07
[iPhone SDK] ViewController 관련..  (0) 2008.10.02
[iPhoneSDK] 버튼 클릭하기  (0) 2008.09.30
cocoa basic #1  (0) 2008.09.30
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


View based application으로 프로젝트를 생성하게되면




기본으로 MainWindow안에 View가 속해지게된다.




AppDelegate에는 


UIWindow *window; //이것이 메인 윈도우


testViewController  *viewController; //이것이 뷰컨트롤러




애플리케이션 시작인 applicationDidFinishLaunching에는


[window addSubview:viewController.view]; // 메인 윈도우에 뷰를 추가한다.






testViewController가 상속받는 UIViewController는 하나의 뷰를 관리한다.


또한 자체 리소스 testViewController.xib를 갖으며 해당 뷰 위에 텍스트필드같은것을


올려 놓고 testViewController.xib의 File's Owner로 아울렛을 연결하면 된다.

'KB > iphone/mac' 카테고리의 다른 글

[iPhoneSDK] Using TabBar  (0) 2008.10.07
[iPhoneSDK] MyViewController 추가하기  (0) 2008.10.07
[iPhone SDK] ViewController 관련..  (0) 2008.10.02
[iPhoneSDK] 버튼 클릭하기  (0) 2008.09.30
cocoa basic #1  (0) 2008.09.30
Obj-C 간단한 C++ 비교 사용 법  (0) 2008.09.30
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST







iPhoneSDK




2008-09-30 

bro@shinbiro.com 조경민 neri.cafe24.com

iphone 버튼 클릭하기






1. 프로젝트 코드 작성


먼저 프로젝트를 iphone windows based로 생성한다


그리고 아래와 같이 버튼과 텍스트필드를 위한 아울렛을 선언한다.

버튼 클릭이벤트를 받기 위해서 이벤트 핸들러 함수도 선언한다. (함수명은 마음대로)




testbuttonAppDelegate.h




//


//  testbuttonAppDelegate.h


//  testbutton


//


//  Created by Kyungmin Cho on 08. 09. 30.


//  Copyright __MyCompanyName__ 2008. All rights reserved.


//




#import <UIKit/UIKit.h>




@interface testbuttonAppDelegate : NSObject <UIApplicationDelegate> {


    UIWindow *window;



IBOutlet UITextField *text1;


IBOutlet UIButton *button1;


}




@property (nonatomic, retain) IBOutlet UIWindow *window;




- (IBAction) OnButtonClick:(id)sender;




@end





이벤트 핸들링되면 텍스트 필드에 클릭이라고 출력되게 해보자.




testbuttonAppDelegate.m




//


//  testbuttonAppDelegate.m


//  testbutton


//


//  Created by Kyungmin Cho on 08. 09. 30.


//  Copyright __MyCompanyName__ 2008. All rights reserved.


//




#import "testbuttonAppDelegate.h"




@implementation testbuttonAppDelegate




@synthesize window;






- (void)applicationDidFinishLaunching:(UIApplication *)application {    




    // Override point for customization after application launch


    [window makeKeyAndVisible];


}






- (void)dealloc {


    [window release];


    [super dealloc];


}






- (IBAction) OnButtonClick: (id) sender


{


[text1 setText: @"click!"];


}




@end





2. 버튼, 텍스트필드 리소스 생성



이제 리소스 에디터에서 버튼과 텍스트필드를 추가한다.



Resources안의 MainWindow.xib를 더블클릭하면 InterfaceBuilder가 실행되며 

메인 윈도우 에다가 오른편에 있는 버튼과 텍스트필드를 드래그앤 드럽으로 가져오면 된다.






3. 아울렛 연결



이제 실제 코드와 리소스를 연결한다.

먼저 MainWindow.xib 창의 testbuttonApp...를 선택하고 오른클릭 하면 코드로 적어놨던 text1과 button1이 있음을 알 수 있다.

버튼과 텍스트를 아래 그림처럼 동그라미 안에서 드래그 드럽으로 원하는 Window 창의 각 버튼 텍스트에 연결한다.








마지막으로 버튼 클릭 이벤트 함수 연결은 

Received Actions의 내가 코딩했던 OnButtonClick함수의 동그라미에서 드래그앤 드럽으로 Window의 버튼으로 연결하면

아래와 같이 버튼의 어떤 액션에 연결할겨냐고 나오는데 TouchDown으로 연결하면 된다.









4. 실행



cmd + R을 눌르거나 Debug and Run을 실행하면 iPhone simulator가 실행되며 버튼 누르면 click이라는 글짜가 텍스트 필드에 나타난다.




'KB > iphone/mac' 카테고리의 다른 글

[iPhoneSDK] MyViewController 추가하기  (0) 2008.10.07
[iPhone SDK] ViewController 관련..  (0) 2008.10.02
[iPhoneSDK] 버튼 클릭하기  (0) 2008.09.30
cocoa basic #1  (0) 2008.09.30
Obj-C 간단한 C++ 비교 사용 법  (0) 2008.09.30
cocoa å  (0) 2008.09.30
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


cocoa basic #1

KB/iphone/mac 2008.09.30 16:39

오후 4:17 2008-09-30
cocoa basic #1
조경민 bro@shinbiro.com neri.cafe24.com
====================================================================


hello world!
------------------------------------------------------------


int main ( int argc, const char *argv[])
{
  NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
 
  NSLog(@"Hello World"); // printf 유사


  [pool release];
  return 0;
}


동적 배열 사용하기
------------------------------------------------------------


NSMutableArray


int main ( int argc, const char *argv[])
{
  NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];


  NSMutableArray *arr = [[NSMutableArray alloc] init];


  [arr addObject: @"string1"];
  
  int iCount = [arr count];
  NSString* ps = [arr objectAtIndex: 0];


  NSLog (@"Array description: %@ \n", arr );


  [arr release] 
  [pool release];
  return 0;
}


해쉬맵을 필요로 한다면 NSMutableDictionary를 사용



윈도우 프로그래밍 기초
------------------------------------------------------------


윈도우 클릭 시 Quartz 윈도우 서버 (윈도우 매니저)는 눌린 윈도우를 알아낸 후 관련된 NSApp 프로그램에게 이벤트를 알려준다.
NSWindow 안에 NSView가 속할 수 있다. (자식윈도우)


Nib : Interface Builder (리소스 에디터)로 생성한 윈도우 배치 리소스 파일 (MFC의 res 유사)
아웃렛: Interface Builder에서 윈도우에 생긴 버튼을 관리하기 위한 인스턴스 변수 (MFC 다이얼로그에 붙은 버튼 관리 위한 클래스 위자드 CButton 생성하는 것과 같음)
액션: 버튼 클릭 등 이벤트 핸들러 함수


아울렛 생성시 만일 에디트 컨트롤 생성하면 MyController.h에 다음 처럼 추가됨.
IBOutlet NSTextField *textField;



Autorelease Pool
------------------------------------------------------------
객체의 참조카운터를 내리는 과정 release 또는 autorelease
올리는 과정 retrain


만일 내가 생성한 객체가 아닌 인자로 받은 객체를 release하면 안된다.
만일 인자로 보내줄 때 retrain해서 참조를 늘려줬다면 받아서 쓰고 release를 한다.


free나 dealloc을 호출하지 않는다.



NSWindow라면 newTitle 객체와 title을 공유하지 않기 위해 아래처럼 할 수 있다.
- (void)setTitle: (NSString *)newTitle
{
  [title autorelease];
  title = [newTitle copy];
}


아래는 원치 않는 결과 나올 수 있음.
NSMutableString *foo = [NSMutableString stringWithCString:"foo"];
[myWindow setTtitle:foo];
[foo appendString:@"bar"]; // 타이틀이 foobar가 됨.


 

'KB > iphone/mac' 카테고리의 다른 글

[iPhone SDK] ViewController 관련..  (0) 2008.10.02
[iPhoneSDK] 버튼 클릭하기  (0) 2008.09.30
cocoa basic #1  (0) 2008.09.30
Obj-C 간단한 C++ 비교 사용 법  (0) 2008.09.30
cocoa å  (0) 2008.09.30
xcode 유용한 개발 단축키  (0) 2008.09.29
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


오후 3:49 2008-09-30
Obj-C 간단한 C++ 비교 사용 법
조경민 bro@shinbiro.com neri.cafe24.com
============================================================


test.cpp


class MyObj : public NSObject
{
  int i;


public:
  MyObj* func1();
  void func2( int a );
  static int sum_Arg1 ( int a, int b );
}


MyObj* MyObj::func1()
{
  return this;
}


void MyObj::func2( int a )
{
}


int MyObj::sum_Arg1 ( int a, int b )
{
  return a + b;
}



MyObj* p = new MyObj;
p->func1();
p->func2(1);
int s = MyObj::sum_Arg1( 1, 2 );



-----------------------------------------------
test.m 파일


@interface MyObj : NSObject
{
  int i;
}


@public


- (MyObj*) func1;
- (void) func2:(int)a;
+ (int) sum_Arg1:(int)a: Arg2:(int)b;


@end


@implementation MyObj
- (MyObj*) func1
{
  return self;
}


- (void) func2:(int)a
{
}


+ (int) sum_Arg1:(int)a: Arg2:(int)b
{
  return a + b;
}


@end


MyObj* p = [[MyObj alloc] init];
[p func1];
[p func2:1];
int s = [MyObj sum_Arg1: 1 : 2];


----------------------------------------------



간단 정리:
1. 멤버함수, 정적 멤버함수 표현
- 는 멤버함수
+ 는 정적멤버함수


2. 멤버함수 호출은 [obj method] 방식


3. 선언부 (@interface), 구현부 (@implementation)으로 나뉨

4. 기본적으로 MFC CObject 처럼 NSObject을 상속함


5. alloc/init과 new는 동일


이외에 추가 정리


6. 모든 멤버함수는 dynamic binding으로 모든 method 가 C++의 virtual임.


7. object-c에는 class variable이 없다. 그냥 전역 변수를 선언해야 한다.

'KB > iphone/mac' 카테고리의 다른 글

[iPhoneSDK] 버튼 클릭하기  (0) 2008.09.30
cocoa basic #1  (0) 2008.09.30
Obj-C 간단한 C++ 비교 사용 법  (0) 2008.09.30
cocoa å  (0) 2008.09.30
xcode 유용한 개발 단축키  (0) 2008.09.29
맥 시디 부팅하기  (0) 2008.09.22
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


cocoa å

KB/iphone/mac 2008.09.30 15:08

http://kekedie.tistory.com/153


코코아는 이거 하나로 끝. ㅋㅋ

'KB > iphone/mac' 카테고리의 다른 글

cocoa basic #1  (0) 2008.09.30
Obj-C 간단한 C++ 비교 사용 법  (0) 2008.09.30
cocoa å  (0) 2008.09.30
xcode 유용한 개발 단축키  (0) 2008.09.29
맥 시디 부팅하기  (0) 2008.09.22
맥에서 캡쳐하기  (0) 2008.09.22
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST



completion list : esc
도움말 : option + 더블클릭
definition : option + cmd + 더블클릭
MDI창 변환 : option + cmd + 왼쪽키/오른쪽키
m,h파일 전환 : option +cmd + 윗키
스크롤 다운 : fn + 방향키
홈/엔드 : cmd + 방향키
단어 단위 이동 : option + 방향키


오예 이정도면 할만하다. ㅋㅋㅋ

'KB > iphone/mac' 카테고리의 다른 글

Obj-C 간단한 C++ 비교 사용 법  (0) 2008.09.30
cocoa å  (0) 2008.09.30
xcode 유용한 개발 단축키  (0) 2008.09.29
맥 시디 부팅하기  (0) 2008.09.22
맥에서 캡쳐하기  (0) 2008.09.22
터미널에서 루트얻기  (0) 2008.09.22
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


아주 간단한건데도 첨에 아무것도 모르면 하나도 못하네..


부팅후 c 키 누르고 있으면 시디 부팅
또는
option키 누르고 있으면 시디로 할래 하드로할래 고르는거 나옴

'KB > iphone/mac' 카테고리의 다른 글

cocoa å  (0) 2008.09.30
xcode 유용한 개발 단축키  (0) 2008.09.29
맥 시디 부팅하기  (0) 2008.09.22
맥에서 캡쳐하기  (0) 2008.09.22
터미널에서 루트얻기  (0) 2008.09.22
leopard optimization 최적화  (0) 2008.09.22
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


전체화면 캡쳐 cmd + shift + 3 
부분화면 캡쳐 cmd + shift + 4 한후 마우스 드래그 후 스페이스바 

'KB > iphone/mac' 카테고리의 다른 글

xcode 유용한 개발 단축키  (0) 2008.09.29
맥 시디 부팅하기  (0) 2008.09.22
맥에서 캡쳐하기  (0) 2008.09.22
터미널에서 루트얻기  (0) 2008.09.22
leopard optimization 최적화  (0) 2008.09.22
mac osx 10.5 (leopard) dmg install without DVD  (0) 2008.09.20
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


티스토리 툴바