委托回报价值

时间:2012-10-30 14:44:17

标签: objective-c ios

我无法将值返回给代理人。

@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];

有什么想法吗?

4 个答案:

答案 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];