1. ホーム
  2. objective-c

Objective-Cでブロックをプロパティに格納する方法は?

2023-08-17 15:36:31

質問

objective-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();