数据控制器中的iOS方法是';不要被叫
我试图在data controller对象中调用一个方法来加载应用程序的数据,但由于某些原因,没有调用它。下面是我初始化它的步骤。任何帮助都将不胜感激 视图控制器: 头文件:数据控制器中的iOS方法是';不要被叫,ios,methods,error-handling,Ios,Methods,Error Handling,我试图在data controller对象中调用一个方法来加载应用程序的数据,但由于某些原因,没有调用它。下面是我初始化它的步骤。任何帮助都将不胜感激 视图控制器: 头文件: #import <UIKit/UIKit.h> @class DetailViewController; @class DataController; #import <CoreData/CoreData.h> #import "JointCAD.h" @interface TableView
#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 <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
“dataController”对象是否由其他类设置我相信这就是为什么你把它作为一个财产?对吧? 如果没有,请删除属性@synthesis of'dataController',尝试简单分配'dataController'对象,然后尝试调用您的方法
希望有帮助。在实际调用其方法之前,您需要初始化“DataController”,或者需要通过将“-”改为“+”使该方法“refreshData”成为一个类 如果您需要一个实例回调。您需要像这样重写“viewDidLoad”:
- (void)viewDidLoad {
DataController *dataController = [[DataController alloc] init];
[dataController refreshData];
}
并且去掉dataController的属性声明,因为您还没有初始化它。如果您希望使用属性声明,只需在调用viewcontroller函数之前分配viewcontroller即可
- (void)viewDidLoad {
dataController = [[DataController alloc] init];
[dataController refreshData];
}
最后要注意的是,我(可能还有Ray)假设您使用的是情节提要配置。如果您使用的是xib配置,则需要将initWithNibName:
添加到视图控制器的每次初始化中
我希望这会有帮助 Hmmm我以ray wenderlichs推送通知教程为例,这就是他访问数据模型的方式。我不应该每次想访问它时都分配它。。。。
- (void)viewDidLoad {
DataController *dataController = [[DataController alloc] init];
[dataController refreshData];
}
- (void)viewDidLoad {
dataController = [[DataController alloc] init];
[dataController refreshData];
}