반응형
Objective-C의 속성에 블록을 저장하는 방법은 무엇입니까?
나중에 사용하기 위해 object-c 블록을 속성에 저장하고 싶습니다. 나는 그것을하는 방법을 몰랐기 때문에 조금 봤고 주제에 대한 정보가 거의 없습니다. 하지만 결국에는 그런 것들이 있다고 생각했습니다.
처음에는 Block_copy 및 Block_release를 사용하여 비용을 직접 작성해야합니다.
많은 나는 발견했습니다 블록 NSObjects 있습니다 및 - copy
/ - release
동일합니다 Block_copy
/ Block_release
. 그래서 @property (copy)
세터와 게터를 자동으로 생성 하는 데 사용할 수 있습니다 .
편집 : ARC 용으로 업데이트 됨
typedef void(^MyCustomBlock)(void);
@interface MyClass : NSObject
@property (nonatomic, copy) MyCustomBlock customBlock;
@end
@implementation MyClass
@end
MyClass * c = [[MyClass alloc] init];
c.customBlock = ^{
NSLog(@"hello.....");
}
c.customBlock();
또는 typedef없이
@property (copy, nonatomic) void (^selectionHandler) (NSDictionary*) ;
이에 대한 매우 좋은 설명은 83 페이지에서 시작하는 WWDC 2012 세션 712에서 사용할 수 있습니다. ARC에서 블록을 저장하는 올바른 방법은 다음과 같습니다.
@property(strong) my_block_type work;
유지 주기에주의하십시오. 해결하는 좋은 방법은 더 이상 필요하지 않을 때 설정하는 것입니다.
self.work = nil;
참고 URL : https://stackoverflow.com/questions/4081831/how-to-store-blocks-in-properties-in-objective-c
반응형
'ProgramingTip' 카테고리의 다른 글
MySQL에서는 어디에서나 주석을 어떻게 제거 할 수 있습니까? (0) | 2020.10.15 |
---|---|
Postgres 오류 "파라미터"TimeZone "에 대한 잘못된 값 :"UTC "" (0) | 2020.10.15 |
File.Move 작동하지 않음-파일이 이미 있음 (0) | 2020.10.15 |
Rails 3.1 자산 파이프 라인 : 컨트롤러 별 펼쳐지는 방법은 무엇입니까? (0) | 2020.10.15 |
Vim / Vi에 커서를 끝으로 이동하는 명령이 검색 하이라이트? (0) | 2020.10.15 |