Это может быть хорошо, но будьте уверены, что вы не сохраняете циклы.(A сохраняет B, B сохраняет A, ни один из них никогда не освобождается)
Если вы просто используете только функциональность MyParentController, тогда хорошей идеей будет создать протокол и установить делегат в качестве объекта.который принимает (реализует) этот @protocol. Это не обязательно, но это хорошая практика и лучший дизайн таким образом.
Вы можете создать свой протокол как:
//MyProtocol.h
@protocol MyProtocol <NSObject>
@required
- (void) requiredMethod:(NSString *)param;
@optional
- (void) optionalMethod:(NSString *)param;
@end
И сделать свой класс:
#import "MyProtocol.h"
@interface MyCellClass : UITableViewCell {
id<MyProtocol> delegate;
}
@property (nonatomic, assign) id<MyProtocol> delegate; //see I changed it to assign?
Кроме того, если у вас есть делегаты, вы должны избегать их сохранения, иначе у вас будут циклы сохранения, а значит, утечки памяти.