Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从UITableViewController中的类调用方法_Ios_Objective C_Uitableview - Fatal编程技术网

Ios 从UITableViewController中的类调用方法

Ios 从UITableViewController中的类调用方法,ios,objective-c,uitableview,Ios,Objective C,Uitableview,大家好,这里是最好的会员 我有一个问题,关于从我的类调用一个方法到UITableViewController,在这个方法中称为:loadData我已经连接到我的本地主机并获得一个json对象,这个方法的实现是有效的,所以不必担心这个问题,当我记录NSLog时,它会给我正确的输出 奇怪的是,当我在TableViewController中将这个方法调用到我的ViewDidLoad方法中时,我什么都没有得到,这怎么可能呢?因为当我将我的方法移动到TableViewController的.h文件中并将其

大家好,这里是最好的会员

我有一个问题,关于从我的类调用一个方法到UITableViewController,在这个方法中称为:loadData我已经连接到我的本地主机并获得一个json对象,这个方法的实现是有效的,所以不必担心这个问题,当我记录NSLog时,它会给我正确的输出

奇怪的是,当我在TableViewController中将这个方法调用到我的ViewDidLoad方法中时,我什么都没有得到,这怎么可能呢?因为当我将我的方法移动到TableViewController的.h文件中并将其实现到我的TableViewController.m中时,它就工作了

这里有一个例子

@interface CLub : NSObject

@property(nonatomic,strong) NSMutableArray *teams;
@property(nonatomic,strong) NSString *teamName;
-(void)loadData;

@end

@implementation CLub

-(void)loadData {

    NSURL *url = [[NSURL alloc] initWithString:@"http://localhost/xampp/flashbackapi/"];
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];


    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
    operation.responseSerializer = [AFJSONResponseSerializer serializer];
    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {


        self.club.teams = [[NSMutableArray alloc] init];

        self.club.teams = [responseObject objectForKey:@"clubs"];




    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error %@ %@",error,error.userInfo);
    }];



    [operation start];

}

@end

@implementation ClubsTableViewController


- (void)viewDidLoad
{
    [super viewDidLoad];

    self.club = [[CLub alloc]init];
    [self.club loadData];

}
如果有人能帮我或给我一个好的方向,我会非常高兴

@接口俱乐部:NSObject

@属性(非原子,强)NSMutableArray*团队

@属性(非原子,强)NSString*teamName

-(void)载荷数据

@结束

@执行俱乐部

-(id)init{

}

-(BOOL)加载数据{ BOOL isDataLoaded=否; NSURL*url=[[NSURL alloc]initWithString:@''; NSURLRequest*request=[[NSURLRequest alloc]initWithURL:url]

}

@结束

在viewController中,检查是否返回yes

@实现ClubTableViewController

  • (无效)viewDidLoad{ [超级视图下载]

    self.club=[[club alloc]init]; BOOL isDataLoadedSuccessFully=[self.club loadData]

如果(isDataLoadedSuccessFully){ //重新加载用户界面 }else{}

}


显示实际代码(这看起来像一个不会编译的部件示例)和测试代码。它以什么方式不工作(何时检查结果)?它不会将数据加载到UITableViewController。它是异步的。你什么时候尝试使用它?我有几乎相同的情况,我需要从某个通信对象获取数据。我是带着通知做的。另一方面,我看到一些东西,我将以不同的方式做。id club=[[club alloc]init];(还需要一个具有self=[super Init]的Init方法);然后[俱乐部加载数据];但返回数据的方法是什么?是否要查看实例变量的内部?我更喜欢通知。不需要刷新。我知道它在ClubsTableViewController的viewDidLoad中是异步的(检查代码),但可能它不应该在那里?是的,正是我的意思。非常感谢你,我要测试一下,因为我看不到代码,我很清楚。
self = [super init];
if (self) {
 teams = [[NSMutableArray alloc]init];

}
return self;
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.responseSerializer = [AFJSONResponseSerializer serializer];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {


    self.club.teams = [[NSMutableArray alloc] init];

    self.club.teams = [responseObject objectForKey:@"clubs"];

    isDataLoaded = YES;
    return isDataLoaded ;



} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error %@ %@",error,error.userInfo);
    isDataLoaded = NO;
    return isDataLoaded ;

}];

[operation start];
return isDataLoaded;