Я использую протокол с некоторыми необязательными методами.Ошибка при вызове опционального метода протокола
@protocol PhotoDropDownDelegate <NSObject>
@optional
- (void)getEditResult:(NSString *)status;
- (void)getImageForDiagram:(UIImage *)image andImagePath:(NSString *)imagePath;
- (void)dismissPhotoDropDown;
@end
поручаю это для класса
photoDropDownViewController.photoDropDownDelegate = self;
Я использую только один метод
- (void)getImageForDiagram:(UIImage *)image andImagePath:(NSString *)imagePath
{
// Make a Image on center of screen
PhotoLayer *photoLayer = [PhotoLayer nodeWithLengthOfShape:300 andHeight:200 andPathToImage:imagePath];
photoLayer.position = ccp(400, 500);
photoLayer.nameObject = [self makeNewName_ForShape];
photoLayer.isSelected_BottomRightElip = YES;
photoLayer.isSelected = YES;
[photoLayer doWhenSelected_Elip_BottomRight];
[photoLayer show_Elip];
[list_Shapes addObject:photoLayer];
[self addChild:photoLayer];
photoLayer = nil;
// Set Button Delete
selected_GerneralShapeLayer = (GerneralShapeLayer *) [list_Shapes lastObject];
[self updateStatusForButtonDelete];
}
Затем компилятор показать ошибку:
[AddDiagramLayer dismissPhotoDropDown]: unrecognized selector sent to instance 0xb2a8320'
, когда я реализую другие методы исчезнут ошибка
-(void)getEditResult:(NSString *)status {
}
-(void)dismissPhotoDropDown {
}
Как я уже знал, если метод в @option мы можем использовать его или нет. Я не понимаю, что здесь произошло. Может кто-нибудь объяснить мне
Ну, даже если вы сделаете это необязательным, если вы попробуете назвать его, будет проблема правильно? – Desdenova
нет, я просто использую один из них. И не реализуйте другие, он сделает ошибку – user2434837
Да, но, очевидно, вы попытались называть его '[AddDiagramLayer увольнениемфотографического]. Вы не можете, если не выполняете. – Desdenova