2

我无法将值返回给委托。

@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

4 回答 4

6

您传递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它所采用的对象类型。

希望这可以帮助。

于 2012-10-30T14:52:22.293 回答
3

更改- (NSData*)successImage;-(void)successImage:(NSData*)data;

于 2012-10-30T14:46:36.047 回答
1

您的声明

- (NSData*)successImage;

声明一个没有参数的方法并返回一个类型的值NSData。从调用代码来看,您真正想要的似乎是一种方法,它采用一个类型的参数NSData并且没有特别返回任何内容。这可以通过以下声明来实现:

- (void) successImage: (NSData *) data;
于 2012-10-30T14:53:50.420 回答
-1

如果你想设置或发送数据到 delegateImage 你可以像@praveen-s 说的那样做

如果您想从委托中获取数据,您可能需要这样做:

self.d = [[self.delegateImage successImage]mutableCopy];
于 2012-10-30T14:48:24.910 回答