我已经编写了一个方法,我想从同一个类中的另一个方法重用但是我收到此错误消息并且我不明白为什么,如果在同一个类中声明它,它怎么可以未声明呢? / p>
h文件看起来像这样
string getSpecialCustomerAddress (Customer & _c)
{
return _c.GetAge();
}
m文件如下
#import <Foundation/Foundation.h>
#import "AppDelegate.h"
#import "NWTillHelper.h"
@interface JoshuaWebServices : NSObject
+ (void)downloadDataFromURL:(NSURL *)url withCompletionHandler:(void (^)(NSData *))completionHandler;
- (void)downloadCollections;
@end
为什么我不能使用在同一个类中声明的方法?
答案 0 :(得分:3)
您的方法需要接收器。与那些可以在那里调用的函数不同。必须通过类或类的实例来调用方法。在你的情况下,你应该使用一个类,因为它是一个类方法。
更改
[downloadDataFromURL:url withCompletionHandler:^(NSData *data) {
// Make sure that there is data.
if (data != nil) {
self.xmlParser = [[NSXMLParser alloc] initWithData:data];
self.xmlParser.delegate = self;
// Initialize the mutable string that we'll use during parsing.
self.foundValue = [[NSMutableString alloc] init];
// Start parsing.
[self.xmlParser parse];
}
}];
是
[JoshuaWebServices downloadDataFromURL:url withCompletionHandler:^(NSData *data) {
// Make sure that there is data.
if (data != nil) {
self.xmlParser = [[NSXMLParser alloc] initWithData:data];
self.xmlParser.delegate = self;
// Initialize the mutable string that we'll use during parsing.
self.foundValue = [[NSMutableString alloc] init];
// Start parsing.
[self.xmlParser parse];
}
}];