티스토리 뷰

발생일: 2016.02.10

키워드: getValue

문제:

다음 달부터 iOS를 개발해보려고 한다.
Objective-C 는 처음인데, 얼라? `getValue()` 메서드에 리턴값이 없다.

NSValue *value = [points objectAtIndex:0];
CGPoint point;
[value getValue:&point];


해결책:
getValue()는 특정 버퍼에 값을 복사하는 기능이다.
CGPoint는 구조체이고, &point 는 구조체 인스턴스의 주소를 리턴한다.

즉, `point` 변수에 `value` 값을 할당하는 코드이다.


논의:

난 개발을 자바부터 배웠더니, getXXX()/setXXX() 패턴이 익숙해 리턴값이 없는 게 이상하게 느껴졌었다.ㅎㅎ

몇 달 지난 뒤에 보니, 너무 기초적인 내용이라 좀 우습기도 하고 부끄럽기도 한 내용이지만,
나랑 비슷하게 느낀 사람들도 어딘가 있을 것 같아 남겨둔다.

C, Objective-C 에서는 getXXX()/setXXX() 대신, xxx()/setXXX() 가 더 일반적인 패턴이다.

예)
Java:
  String name = user.getName();
  user.setName("foo");

Objective-C
  NSString *name = [user name];
  [user setName:@"foo"];

반응형
댓글
공지사항