태터데스크 관리자

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

태터데스크 메시지

저장하였습니다.

'Objective C'에 해당되는 글 2건

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 기반

Objective-C에서 @property의 사용방법은 다음과 같다.

기본모양
@property (attribute ..) type name;

@property는 기본적으로 getter/setter를 지정하는 명령이다.

@property는 @implementation에서 @synthesize를 호출하면 자동으로 getter/setter를 구현해준다.

따라서,

@property float value;

라고 지정했다면, 이것은

- (float) value;
- (void)setValue: (float)newValue;

와 같은 의미로 컴파일러에 받아들여지게 된다.

attribute는 다음과 같은 것이 있다.

1. Writability
    readwrite : (default) --> getter와 setter 모두 사용한다는 의미다.
    readonly : --> getter만 사용한다는 의미. @synthesize를 호출하면 setter만 구현된다.

2. Setter semantics
   assign : (default) --> 단순히 메모리 할당만 한다.
   retain : 이전에 값이 있다면 자동으로 release가 불러지고, 새로 alloc이 되어 값이 할당된다.
              retain은 Core Foundation class에는 사용할 수 없다.
   copy : retain과 같으나, 새로 alloc을 하고 copy에 의해 객체값이 모두 복사된다.
   각 경우, garbage collection의 사용여부에 따라, 사용하지 않을 경우 Warning이 발생한다.

3. Atomicity
   nonatomic : 기본값은 atomic이며 특별히 nonatomic으로 지정할 때만 사용한다.
   atomic의 경우 setter는 아래와 같이 구현된다.
   [_internal lock];
   id result = [[value retain] autorelease];
   [_internal unlock];
   return result;


이상의 방법으로 @property를 설정하고, @synthesize를 호출하면 인스턴스 값의 read/write는

손쉽게 해결할 수 있다.

그러나, 때에 따라서 @property는 지정하였으나, getter/setter를 바꿔야 할 경우가 있다.

이럴 경우, @synthesize대신 @dynamic을 사용한다.

다음의 예의 같다.

@interface MyClass : NSObject
{
    NSString *value;
}

@property (copy, readwrite) NSString *value;
@end


@implementation MyClass
@dynamic value;

- (NSString *)value
{
    return vale;
}

-(void) setValue:(NSString *)newValue
{
  if (newValue != @"hello")
    value = [newValue copy];
}

@end
신고
블로그 이미지

*별빛*

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

티스토리 툴바