我无法将值返回给代理人。
@protocol DataDelegateImage
- (void)failImage;
- (NSData*)successImage;
@end
@property (nonatomic, strong) id <DataDelegateImage> delegateImage;
@property (nonatomic, strong) NSMutableData* d;
我打电话给我的代表:
[self.delegateImage failImage];
但是现在我正在尝试调用成功委托返回数据内容,但我认为我出了点问题,因为代码不起作用。
[self.delegateImage successImage:self.d];
有什么想法吗?
答案 0 :(得分:5)
您将self.d
传递给successImage
并且没有任何参数可供您传递任何内容。如果你想能够传递一些东西,那么它应该是这样的
- (void)successImage:(NSMutableData*)para1;
或
- (void)successImage:(NSData*)para1;
除非您想要返回某些内容以及将某些内容传递给它,在这种情况下使用
- (NSData*)successImage:(NSData*)para1;
括号type
中的- (NSData*)
是应该返回的类型,这是您要从方法返回的object
类型。然后您的方法名称为successImage
,那么您可以使用参数:(NSData*)para1
来添加更多参数
- (NSData*)successImage:(NSData*)para1 withAString:(NSString*)para2;
type
参数括号内的:(NSData*)para1
是它所采用的对象类型。
希望这有帮助。
答案 1 :(得分:2)
将- (NSData*)successImage;
更改为-(void)successImage:(NSData*)data;
答案 2 :(得分:1)
您的声明
- (NSData*)successImage;
声明一个没有参数的方法,并返回类型为NSData
的值。从调用代码判断,看起来你真正想要的是一个方法,它接受NSData
类型的一个参数并且特别不返回任何内容。这可以通过以下声明来实现:
- (void) successImage: (NSData *) data;
答案 3 :(得分:-1)
如果你想设置或发送数据给delegateImage你可以像@ praveen-s那样说
如果你想从委托中获取数据,你可能想要这样做:
self.d = [[self.delegateImage successImage]mutableCopy];