이 자료는 이영록강사님이 2011년 iOS 개발자 포럼에서 발표한 내용을 약간 개선하고 정리한 자료입니다.
iOS의 메모리관리 기법은 retain count라고 하는 독특하면서도 효율적인 방법을 사용하며 최근에 발표된 Xcode에서는 Automatic Reference Counting(ARC) 기법을 통해 release를 사용하에 객체를 소거하는 불편함을 많이 개선하였습니다.
본 자료에서는 이러한 점에 대한 비교적 상세한 설명을 담고 있습니다.
스트림 API는 람다 표현식을 적극적으로 활용해서 만들어진 자바의 새로운 API 입니다.
스트림 API를 통해서 자바에서도 맵/리듀스 방식으로 대량의 데이터를 순차 또는 병렬 처리를 할 수 있게 되었는데요, 이번 발표를 통해 스트림 API가 무엇인지- 어떻게 써먹는지에 대해 가볍게 씹고 뜯고 맛보고 즐기셨으면 좋겠습니다. :)
예제코드 : https://github.com/arawn/jdk8-stream-api
이 자료는 이영록강사님이 2011년 iOS 개발자 포럼에서 발표한 내용을 약간 개선하고 정리한 자료입니다.
iOS의 메모리관리 기법은 retain count라고 하는 독특하면서도 효율적인 방법을 사용하며 최근에 발표된 Xcode에서는 Automatic Reference Counting(ARC) 기법을 통해 release를 사용하에 객체를 소거하는 불편함을 많이 개선하였습니다.
본 자료에서는 이러한 점에 대한 비교적 상세한 설명을 담고 있습니다.
스트림 API는 람다 표현식을 적극적으로 활용해서 만들어진 자바의 새로운 API 입니다.
스트림 API를 통해서 자바에서도 맵/리듀스 방식으로 대량의 데이터를 순차 또는 병렬 처리를 할 수 있게 되었는데요, 이번 발표를 통해 스트림 API가 무엇인지- 어떻게 써먹는지에 대해 가볍게 씹고 뜯고 맛보고 즐기셨으면 좋겠습니다. :)
예제코드 : https://github.com/arawn/jdk8-stream-api
1. Objective-C
프로퍼티(Property)
By Changhoon Park
Objective-C
http://www.wawworld.me
Last Update : 2011. 08. 28
11년 11월 9일 수요일
2. 새 컴파일러 지시자
@property 접근자 문법
@synthesize
프로퍼티(Property)
2
프로퍼티 프로퍼티 값 축소하기
Objective-C 객체 프로퍼티 사용하기
By Changhoon Park
http://www.wawworld.me
11년 11월 9일 수요일
4. @property float rainHandling;
@: 오브젝티브C 만의 운법이 나타냄
AlIWeatherRadial 클래스의 객체가 float 타입의 애트리뷰트 rainHandling을 가지고 있음을 나타냄
@property는 애트리뷰트의 세터(setter)와 게터(getter) 메소드를 자동 생성
- setRainHandling을 호출하여 프로퍼티의 값을 설정 가능
- rainHandling으로 애트리뷰트에 접근할 수 있음
4
프로퍼티 프로퍼티 값 축소하기
Objective-C 객체 프로퍼티 사용하기
By Changhoon Park
http://www.wawworld.me
11년 11월 9일 수요일
7. @synthesize rainHandling;
「이 메소드의 접근자 메소드를 생성히라」컴파일러 기능
-setRainHandling:과 - rainHandling의 컴파일된 코드를 작성
7
프로퍼티 프로퍼티 값 축소하기
Objective-C 객체 프로퍼티 사용하기
By Changhoon Park
http://www.wawworld.me
11년 11월 9일 수요일
8. 놀라운 점(.)들
오브젝티브 C 2.0 프로퍼티는 객체 애트리뷰트를
더 쉽게 접근할 수 있도록 하는 또 다른 문법 제공
[tire setRainHandling: 20 + i];
[tire setSnowHandling: 28 + i];
tire.rainHandling = 20 + i;
tire.snowHandling = 28 + ii
8
프로퍼티 프로퍼티 값 축소하기
Objective-C 객체 프로퍼티 사용하기
By Changhoon Park
http://www.wawworld.me
11년 11월 9일 수요일
9. 놀라운 점(.)들
점 (.)을 대입 부호 죄측에서 사용:
애트리뷰트 이름에 해당하는 세터 메소드
(-setRainHandling, -setSnowHanling) 호출
우측에 점 연산자 사용 :
해당 애트리뷰트 이름의 게터 메소드
( rainHandling. -snowHanding ) 호출
9
프로퍼티 프로퍼티 값 축소하기
Objective-C 객체 프로퍼티 사용하기
By Changhoon Park
http://www.wawworld.me
11년 11월 9일 수요일
11. interface
@property (copy) NSString *name;
@property (retain) Engine *engine;
• name : copy를 추가해 주면 name이 북시될 것
• engine: retain 참조/릴리즈로 관리
• copy나 retain을 지정해 주지 않으연 컴파일러는 지동으로
기본 값인 assign을 할당하는데 객체에서 사용하기에는적합하지
않다
11
프로퍼티 프로퍼티 값 축소하기
Objective-C 객체 프로퍼티 사용하기
By Changhoon Park
http://www.wawworld.me
11년 11월 9일 수요일
12. implementation
@implementation Car
@synthesize name;
@synthesize engine;
12
프로퍼티 프로퍼티 값 축소하기
Objective-C 객체 프로퍼티 사용하기
By Changhoon Park
http://www.wawworld.me
11년 11월 9일 수요일
13. main
Engine *engine = [[Slant6 alloc] init];
[car setEngine: engine];
Slant6 *engine = [[Slant6 alloc] init];
car.engine = engine;
13
프로퍼티 프로퍼티 값 축소하기
Objective-C 객체 프로퍼티 사용하기
By Changhoon Park
http://www.wawworld.me
11년 11월 9일 수요일
14. 이름 바꾸기
@interface Car : NSObject {
NSString *application;
NSMutableArray *tires;
Engine *engine;
}
@property (copy) NSString *name;
@property (retain) Engine *engine;
@synthesize name = appellation;
14
프로퍼티 프로퍼티 값 축소하기
Objective-C 객체 프로퍼티 사용하기
By Changhoon Park
http://www.wawworld.me
11년 11월 9일 수요일
15. 이름 바꾸기
@interface Car : NSObject {
NSString *application;
NSMutableArray *tires;
Engine *engine;
}
@property (copy) NSString *name;
@property (retain) Engine *engine;
@synthesize name = appellation;
15
프로퍼티 프로퍼티 값 축소하기
Objective-C 객체 프로퍼티 사용하기
By Changhoon Park
http://www.wawworld.me
11년 11월 9일 수요일
16. 이름 바꾸기
@synthesize name = appellation;
• 컴파일러는 여전히 -setName 과 -name을 생성
• 메소드 구현 내부에서는 appellation 인스턴스 변수 사용
16
프로퍼티 프로퍼티 값 축소하기
Objective-C 객체 프로퍼티 사용하기
By Changhoon Park
http://www.wawworld.me
11년 11월 9일 수요일
17. 이름 바꾸기
name = @"Car"; self.name = @"Car";
• 이제 name을 검색하여 대치하거나
• 인스턴스 변수에 직접 접근하는 코드 대신 프로퍼티 사용
17
프로퍼티 프로퍼티 값 축소하기
Objective-C 객체 프로퍼티 사용하기
By Changhoon Park
http://www.wawworld.me
11년 11월 9일 수요일
18. 읽기 전용으로 설정
@property (readwrite, copy) NSString *name;
@property! (readwrite ,retain)! Engιne! *engine;
@interface Me : NSObject {
! float!shoesSize;
! NSString *licenseNumber;
}
@property (readwrite) float shoesSize;
@property (readonly) NSString * licenseNumber;
@end
18
프로퍼티 프로퍼티 값 축소하기
Objective-C 객체 프로퍼티 사용하기
By Changhoon Park
http://www.wawworld.me
11년 11월 9일 수요일
19. 프로퍼티도 만능은 아니다
- (void) setTire: (Tire *) tire
atIndex: (int) index;
- (Tire *) tireAtIndex: (int) index;
• 자동차에서 타이어의 위치와 같이 추가적인 인수를
받는 메소드는 대치 할 수없다
19
프로퍼티 프로퍼티 값 축소하기
Objective-C 객체 프로퍼티 사용하기
By Changhoon Park
http://www.wawworld.me
11년 11월 9일 수요일