我有多個類,我想向其發送相同的消息。更清晰:將相同的消息傳遞給多個ObjC類
我想發送 doX:withClass:具有相同的參數給多個類。也許代碼會更清楚:
+ (void)doX:(NSString *)blah {
[Utility doX:blah withClass:[Foo class]];
[Utility doX:blah withClass:[Bar class]];
[Utility doX:blah withClass:[Baz class]];
[Utility doX:blah withClass:[Garply class]];
}
我有三種方法裏面做上實現一個特定的協議(在DOX類類似的東西:withClass:方法執行一系列步驟,這些步驟假設給定類它實現這樣的協議)。
我的問題是,我怎樣才能更通過編程循環類,所以我可以簡單地添加到列表(在代碼中 - 不能在運行時添加感興趣)將其添加到循環?
您可以將主體更改爲'[類makeObjectsPerformSelector:@selector(doX :) withObject:blah]'。 – mipadi 2010-06-22 18:40:43
嗯,我不想讓這些類執行一個選擇器;我希望Utility類運行一個將Class作爲參數的方法。這是因爲它所運行的對象需要保持簡單並且從我希望Utility類在實現該特定接口的類上執行的行爲中抽象出來。 謝謝,雖然 - 我沒有意識到類可以直接添加到數組;我認爲他們不得不以某種方式封裝。 – 2010-06-22 20:31:07
@安德魯,我更新了我的答案。 – 2010-06-22 20:36:55