繁体   English   中英

iOS从另一个视图跳过方法调用

[英]iOS Skipping a Method Call From Another View

我浏览了大约十二个不同的页面,分别讨论了如何从其他视图和实例中调用方法(当方法被跳过,但是没有答案时)。

我将在这里详细介绍。 两个相关的类:

SpeakersView

获取数据

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"];

建议? 我应该提到,从不同的类以完全相同的方式调用其他方法没有问题。

GetData *GD; 不初始化UIViewController 此时为零,因此您无法在其上调用方法。

尝试:

GetData *GD = [[GetData alloc] init];

另外,为什么GetDataUIViewController 使其成为NSObject ,如果仅将其用于该方法,则不需要整个视图控制器。

调用继承UIViewController的类“ GetData”显然会显示出一个巨大的概念问题。 控制器是一个用模型(以MVC模式)提供其视图的类。 这不是实用程序类。

在您的示例中,您也没有实例化控制器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM