태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
Objective-C를 사용하다보면, Async event를 사용하여 callback 형식으로 객체를 구성하는 경우가 있다.

이 때, selector를 사용하면 간단하게 해결할 수 있다.

예)
[TestSelector.h]
#import <UIKit/UIKit.h>

interface TestSelector : NSObject {
@private
    id rootDelegate;
    SEL noargTask;
    SEL argTask;
}

- (void)SetNoArg:(id) delegate selector:(SEL)selector;
- (void)SetArg:(id) delegate selector:(SEL)selector;
- (void)DoNoArg;
- (void)DoArg : (NSString*)arg1;
@end

[TestSelector.m]
#import "TestSelector.m"

@implementation TestSelector

-(void)SetNoArg:(id) delegate selector:(SEL)selector
{
    rootDelegate = delegate;
    noargTask = selector;
}

-(void)SetArg:(id) delegate selector:(SEL)selector
{
    rootDelegate = delegate;
    argTask = selector;
}

-(void)DoNoArg
{
    if ([rootDelegate respondsToSelector:noArgTask])
        [rootDelegate performSelector:noArgTask];
}

-(void)DoArg:(NSString *)str
{
    if ([rootDelegate respondsToSelector:argTask])
        [rootDelegate performSelector:argTask withObject:str];
}

다른 곳에서 사용할 때,

TestSelector *test = [[TestSelector alloc] init];
[test SetNoArg:self selector:@selector(MyNoArg)];

-(void)MyNoArg
{
}

실행하면 정해진 조건이 될때, MyNoArg가 실행된다.
신고
블로그 이미지

*별빛*

UI/UX관련 개발이슈 및 방법을 나누는 곳입니다. Flex/AIR, Silverlight등 pc 기반 iPhone, Android등 smartphone 기반

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
    }
   
    CGRect contentRect = CGRectMake(80.0, 0.0, 240, 40);
    UILabel *textView = [[UILabel alloc] initWithFrame:contentRect];

textView.text = mytext;
textView.numberOfLines = 2;
textView.textColor = [UIColor grayColor];
textView.font = [UIFont systemFontOfSize:12];
        [cell.contentView addSubview:textView];
[textView release];
신고
블로그 이미지

*별빛*

UI/UX관련 개발이슈 및 방법을 나누는 곳입니다. Flex/AIR, Silverlight등 pc 기반 iPhone, Android등 smartphone 기반


[User]/라이브러리/Application Support/iPhone Simulator/User
신고
블로그 이미지

*별빛*

UI/UX관련 개발이슈 및 방법을 나누는 곳입니다. Flex/AIR, Silverlight등 pc 기반 iPhone, Android등 smartphone 기반

시계어플등을 보면, 자동으로 화면이 잠기지 않는 것을 볼 수 있다.

이것은 간단하게 다음과 같이 구현할 수 있다.

[UIApplication sharedApplication].idleTimerDisabled = NO

당연히, application이 끝날 떄 이것을 해제해야 한다.
신고
블로그 이미지

*별빛*

UI/UX관련 개발이슈 및 방법을 나누는 곳입니다. Flex/AIR, Silverlight등 pc 기반 iPhone, Android등 smartphone 기반

아이폰/터치에서 현재 남아있는 여유공간이 얼마인지 알아보려면 다음과 같이 하면 된다.

NSDictionary* FileAttrs = [ [NSFileManager defaultManager]
                          fileSystemAttributesAtPath:NSTemporaryDirectory()];
NSNumber* freeSize = [FileAttrs objectForKey:NSFileSystemFreeSize];

신고
블로그 이미지

*별빛*

UI/UX관련 개발이슈 및 방법을 나누는 곳입니다. Flex/AIR, Silverlight등 pc 기반 iPhone, Android등 smartphone 기반

현재 개발 기기로 1세대와 2세대 하나씩 있다.

Provisioning에서, 두가지 디바이스 모두 되게 하고 컴파일을 하고 기기에서 실행을 시키는데,

처음에 이런 문구가 뜰 때가 있다.

"Unable to locate a suitable developer disk image"

이에 관해서, iPhone Dev에 있는 iphone_os_preinstallation_advisory_v2.0.pdf를

찾아보면, 다음과 같이 하면 된다고 한다.

1. 터미널을 실행 시킨다.
2. cd <DeveloperHome>/Platforms/iPhoneOS.platform/DeviceSupport
3. ln -s 2.1 2.1.1

이와 같은 방식으로 하면 정상동작될 경우도 있으나 혹시 빌드넘버에 따라 안되기도하므로,

ln -s 2.1 "2.1.1 (5B138)" 로 하는 게 더 안전하다.
신고
블로그 이미지

*별빛*

UI/UX관련 개발이슈 및 방법을 나누는 곳입니다. Flex/AIR, Silverlight등 pc 기반 iPhone, Android등 smartphone 기반

티스토리 툴바