我想通過我的委託對象爲具有聲明類型的參數,所以我沒有投(如果我通過(ID),發件人,而不是):通委託對象類型作爲協議的方法參數
@protocol myObjectDelegate <NSObject>
- (void)myObjectAsArgument:(myObject *)object;
@end
@interface myObject : NSObject
// stuff...
@property (nonatomic, strong) id <myObjectDelegate> delegate;
@end
這樣做的正確方法是什麼?就像我說的,我知道我能做到這一點:
- (void)myObjectAsArgument:(id)object;
這將讓我在作爲參數傳遞self
,但我不喜歡使用CAST語法。
謝謝。
注:
蘋果確實太:
@protocol UITableViewDataSource <NSObject>
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
@end
@interface UITableView : UIScrollView
@property (nonatomic, strong) id <UITableViewDataSource> dataSource;
@end
這是從UITableViewDataSource協議只是一個方法,它的傳遞一個UITableView類型作爲參數。 ;)
我不認爲哪個是一個好主意,在哪裏保持一個委託的強大參考。 – Goppinath 2014-08-29 06:08:41
代表引用應該總是很強大,因爲你可以,所以它在蘋果的文檔 – believesInSanta 2014-08-29 06:56:23
中,並不意味着你應該,在這種情況下,沒有什麼可以說你不能做。基本上是如果我想保留我的對象在內存中,直到我的委託所有者和我的委託對象被髮送垃圾回收?爲什麼不? – believesInSanta 2014-08-29 07:04:23