ここに 2 つのシナリオがあります。
1) ObjectA によって 2 回呼び出されたときに、ObjectB に異なるプロパティが渡される可能性があります。
2) オブジェクト B には 1 つのプロパティ セットのみが渡され、オブジェクト A は Bethod B1 と B2 を実行する必要がありますが、オブジェクト B は同じプロパティを保持します。
3) オブジェクト B に新しいパラメーターを渡す必要がある場合は、ゲッターとセッターを使用しますか?
シナリオ 1:
ObjectA.m:
...
ObjectB *objectB = [[ObjectB alloc] initWithSomeParameter:@"the parameter"];
NSString *callback1 = [objectB methodB1];
// why release when you can repoint?
ObjectB *objectB = [[ObjectB alloc] initWithSomeParameter:@"another parameter"];
NSString *callback2 = [objectB methodB2];
[objectB release];
シナリオ 2:
ObjectA.m:
...
ObjectB *objectB = [[ObjectB alloc] initWithSomeParameter:@"the parameter"];
NSString *callback1 = [objectB methodB1];
NSString *callback2 = [objectB methodB2];
[objectB release];
シナリオ 3:
ObjectA.m:
...
ObjectB *objectB = [[ObjectB alloc] initWithSomeParameter:@"the parameter"];
NSString *callback1 = [objectB methodB1];
[objectB setSomeParameter:@"another parameter"];
NSString *callback2 = [objectB methodB2];
[objectB release];
ObjectB がコールバックすると言うときは? 私はあなたが意味しないことを願っています:
ObjectA.m:
ObjectB *objectB = [[ObjectB alloc] initWithSomeParameter:@"the parameter"];
NSString *callback1 = [objectB methodB1];
...
ObjectB.m:
...
//DO some work in method B1
ObjectA *objectA [[ObjectA alloc] init];
[objectA callback];
それはすぐそこに迫っているメモリリードです...これがあなたの言いたいことである場合は、上記のシナリオを読むか、クロスオブジェクト通知、つまりコールバックの NSNotificationCentre 通知を確認することをお勧めします。