我查了十几个不同的页面,关于如何在跳过方法时从其他视图和实例调用方法,但没有回答。
我将在这里彻底。两个相关的课程:
SpeakersView
和
的GetData
GetData就在那里,因为我需要从六个不同的类中调用该方法,最好只写一次。
这是GetData.h:
#import <UIKit/UIKit.h>
@interface GetData : UIViewController
-(NSArray *)getTableArray:(NSString *)section :(NSString *)entity;
@end
这是GetData.m:
@interface GetData (){
NSArray *tableData;
NSArray *titleData;
NSArray *splitData;
}
@end
@implementation GetData
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(NSArray *)getTableArray:(NSString *)section :(NSString *)entity{
//Code omitted. Shouldn't really have anything to do with why the method is being skipped.
}
@end
所以这就是我在SpeakersView.m中调用方法的方法:
GetData *GD;
menu_List = [GD getTableArray:@"Speakers" :@"John Smith"];
建议?我应该提一下,从不同的类中以完全相同的方式调用其他方法没有问题。
答案 0 :(得分:1)
GetData *GD;
没有初始化UIViewController
。它在那时没有,所以你不能在它上面调用一个方法。
尝试:
GetData *GD = [[GetData alloc] init];
另外,为什么GetData
为UIViewController
?设为NSObject
,如果您只是将其用于该方法,则不需要整个视图控制器。
答案 1 :(得分:0)
调用继承UIViewController的类“GetData”清楚地显示了一个巨大的概念问题。控制器是一个用模型提供视图的类(在MVC模式中)。它不是实用类。
在您的示例中,您还没有实例化控制器。