オプションのメソッドをいくつか含むプロトコルを使用します。
@protocol PhotoDropDownDelegate <NSObject>
@optional
- (void)getEditResult:(NSString *)status;
- (void)getImageForDiagram:(UIImage *)image andImagePath:(NSString *)imagePath;
- (void)dismissPhotoDropDown;
@end
これをクラスに割り当てます
photoDropDownViewController.photoDropDownDelegate = self;
私は1つの方法だけを使用します
- (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 のメソッドが使用できるかどうかはわかりません。ここで何が起こったのか理解できません。誰か説明してくれませんか