2010년 9월 14일 화요일

UISegmentedControl을 enum과 사용하기

UISegmentedControl 을 enum과 연결해서 가독성 좋은 코드 만들기






typedef enum {

    kFirst = 0,

    kSecond,

    kThird,

} TabIndex;


enum을 선언하고 아래와 같이 쓰면 가독성이 좋은 코드가 된다.


- (IBAction)changeSegmented:(id)sender {

    UISegmentedControl *control = sender;

    NSInteger index = [control selectedSegmentIndex];

    

    switch (index) {

        case kFirst: //0

    ...

            break;

        case kSecond: //1

            ...

            break;

        case kThird: //2

    ...

            break;

        default:

            break;

    }

}



2010년 8월 7일 토요일

Objective-C Outlet

objective-c 에서는 다른 객체를 참조 하는 변수를 outlet 이라고 부른다. 
outlet 은 GUI 구성을 하는 Interface Builder 에서 변수로 다른 객체를 연결 할때 사용함. 

IBOutlet UIView *view2;


위와 같은 형태로 주로 사용되는데 
IBOutlet 에서 IB는 Interface Builder의 줄인말인듯. 

참조를 하기 위해서는 아래와 같이 선언하고 .m 에서 접근 하면 된다. 

@property (nonatomic, retain) IBOutlet UIView *view2;

2010년 6월 29일 화요일

UIView Flip 효과 - iPhone

  


#pragma mark - Flip screen


- (void)flipAction:(id)sender

{

[UIView setAnimationDelegate:self];

[UIView setAnimationDidStopSelector:@selector

            (animationDidStop:animationIDfinished:finished:context:)];

[UIView beginAnimations:nil context:nil];

[UIView setAnimationDuration:0.75];

[UIView setAnimationTransition:([self.tableView superview] ? UIViewAnimationTransitionFlipFromLeft UIViewAnimationTransitionFlipFromRight)

forView:self.tableView cache:YES];

if ([instructionsView superview])

[instructionsView removeFromSuperview];

else

[self.tableView addSubview:instructionsView];


[UIView commitAnimations];

// adjust our done/info buttons accordingly

if ([instructionsView superview] == self.tableView)

self.navigationItem.rightBarButtonItem = doneButton;

else

self.navigationItem.rightBarButtonItem = flipButton;

}

2010년 6월 27일 일요일

Protocols - Objective-C

Protocol : 메소드 선언의 집합

java의 interface라는 개념이 Protocol을 도입한 개념임. 

서로 다른 객체가 같은 메소드의 집합을 가지는 경우, 상속 관계는 아님. 

프로토콜은 메소드의 명칭들을 정해 놓으면 그 프로토콜을 따를 때 메소드의 명칭들이 같아지므로 사용성이 좋아지는 것을 목적으로 한다. 



2010년 3월 12일 금요일

충돌 알고리즘

1) Fast 3D Triangle-Box Overlap Testing (삼각형과 박스의 충돌 검사)
    홈페이지 주소 : http://www.acm.org/jgt/papers/AkenineMoller01/ 이런연결 끊어졌네요..ㅡㅡ;

2) A Fast Triangle-Triangle Intersection Test (삼각형대 삼각형 충돌검사)
   홈페이지 주소 : http://www.acm.org/jgt/papers/Moller97/ 끊어짐.

3) Fast, Minimum Storage Ray-Triangle Intersection (직선과 삼각형의 충돌검사)
   홈페이지 주소 : http://www.acm.org/jgt/papers/MollerTrumbore97/ 끊어짐.


Collision Detection

http://code.google.com/p/gjkd/
http://code.google.com/p/mpr2d/

2010년 3월 11일 목요일

서버에서 다운 받기 - Objective-c

erica 예제 c3-06-Synchronous Downloads


NSURL *url = [NSURL URLWithString: [urlArray objectAtIndex:[which intValue]]];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
NSURLResponse *response;
NSError *error;

NSData* result = [NSURLConnection sendSynchronousRequest:
theRequest
theRequest returningResponse:&response error:&error];



덤으로 무비 플레이어

- (void) startPlayback : (id) sender
{
MPMoviePlayerController* theMovie=[[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:self.savePath]];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:theMovie];
[theMovie play];
}

2010년 1월 28일 목요일

개발자 관점의 iPad

기본 사양

- 9.7인치 멀티 터치스크린
- LED 백라이팅 IPS 디스플레이
- 두께 0.5인치(1.27cm)
- 무게 453g(1.5파운드)
- 가상 키보드 탑재
- 1GHz 애플 A4칩
- 16GB, 32GB, 64GB 플래시 메모리
- 3G 이동통신
- WiFi 무선인터넷
- 블루투스 기능 탐재
- 배터리는 최대 10시간 동영상 연속 재생 가능
- 가격은 499~829달러 (58~96만원)


고려해야 할 사항
기존의 아이폰 어플을 그대로 사용할수 있다고 함.
넓어진 화면 고려
아이폰을 가진 사람이 wi-fi 버젼을 구매할 가능성 고려
동영상 10시간 구동 배터리 (게임 종류의 어플에겐 더 없이 좋은 환경이 될듯)
외부 키보드 사용가능

Looks Like The Apple iPad Doesn't Have Flash, After All (워싱턴 포스트)  여전히 ipad도 플래시는 지원 하지 않을듯..ㅡㅡ;

Flash CS5가 기다려짐.




2010년 1월 7일 목요일

위자드팩토리 2010년 새해 소원 카드 위젯 달기


위자드팩토리의 2010년 새해 소원 카드 위젯을 블로그에 달아 보는 방법 입니다.
알고나면 쉬운 방법이지만 가끔은 모르는 분들도 있는 듯 해서 동영상으로 만들어 보았습니다.^^


이쁜 위젯들로 홈페이지를 이쁘게 치장해 보아요~  
추가로 다른 위젯들도 달아 보세요..

2010년 1월 1일 금요일

xcode 에서 회사 이름 바꾸기

Xcode에서 회사 이름 바꾸기

//
//  UITableView.h
//
//  Created by myname on 10. 1. 1..
//  Copyright 2010 __MyCompanyName__. All rights reserved.
//


주석에서 회사 이름을 변경하려면 터미널에서 아래 명령어를 실행하면 된다.

defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{ORGANIZATIONNAME="__MyCompanyName__";}'