1

プロパティとしてブロックを持つ本当に動的なクラスを作成したいと思います。私が望むのは、このブロック関数が Class インスタンス変数とプロパティにアクセスできるようにすることです。

ここに私の疑いのあるコード:

/* MyClass Interface */
@interface MyClass:NSObject
@property (nonatomic, strong) NSString *variable;
@property (nonatomic, assign) void (^updateFunction)();
@end


 /* MyClass implementation */
@implementation MyClass

-(void)update{ 
    //Perform the block function code
    self.updateFunction();
}
@end



/* MyClass usage*/
MyClass *myClass = [[MyClass alloc]init];
myClass.variable = @"Variable Value";
myClass.updateFunction = ^{ 
   //HERE MY DOUBT...
   //How can I access the myClass.variable and be sure that when this block
   //will be called it didn't get a bad access? 
}

したがって、前のコードから、オブジェクト自体のプロパティとして格納されているブロックからオブジェクトのインスタンス変数に直接アクセスする方法は疑問です。

4

3 に答える 3

0

ブロック関数は、プロパティ値が使用されるクラスの (プライベート) メソッドを呼び出すことができます。

于 2013-07-19T16:22:01.227 に答える