我试图在我的数据控制器对象中调用一个方法来为我的应用程序加载数据,但由于某种原因它没有被调用。以下是我为初始化它所做的工作。任何帮助将不胜感激。
的ViewController:
头文件:
#import <UIKit/UIKit.h>
@class DetailViewController;
@class DataController;
#import <CoreData/CoreData.h>
#import "JointCAD.h"
@interface TableViewController : UITableViewController {
}
@property (nonatomic, assign) DataController *dataController;
@end
实施档案:
#import "TableViewController.h"
#import "DataController.h"
@implementation TableViewController
@synthesize dataController;
- (void)viewDidLoad {
[dataController refreshData];
}
@end
数据控制器:
头文件:
#import <Foundation/Foundation.h>
#import "JointCAD.h"
#import "JointCADXMLParser.h"
#import "TFHpple.h"
@interface DataController : NSObject {
TFHpple *xpathParser;
}
- (void)refreshData;
- (void)initXMLParser;
- (void)noCallsMessage;
- (void)noInternetMessage;
@end
实施档案:
#import "DataController.h"
@implementation DataController
XMLParser *xmlParser;
- (void)refreshData {
NSLog("Some Method");
}
答案 0 :(得分:0)
'dataController'对象是否由其他类设置? - 我相信这就是你把它作为财产的原因?正确?
如果否,则删除属性,@ compoundize'dataController'并尝试简单分配'dataController'对象,然后尝试调用您的方法。
希望它有所帮助。
答案 1 :(得分:0)
你需要在实际调用其中一个方法之前初始化“DataController”,或者你需要通过将它的“ - ”更改为“+”来使方法“refreshData”成为一个类。
如果您需要实例回调。你需要像这样重写“viewDidLoad”:
- (void)viewDidLoad {
DataController *dataController = [[DataController alloc] init];
[dataController refreshData];
}
并删除dataController的属性声明,因为你还没有初始化它。如果您更喜欢属性声明,只需在调用函数之前分配viewcontroller。
- (void)viewDidLoad {
dataController = [[DataController alloc] init];
[dataController refreshData];
}
最后要注意的是,我(可能是Ray)假设您正在使用故事板配置。如果您使用的是xib配置,则需要在视图控制器的每个初始化中添加initWithNibName:
。
我希望这有用!