NSObject에서 상속 한 Data 클래스가 있습니다.
이 클래스에서는 데이터 요청을 처리합니다.
이 후 NSMutableArray에서 보유하고있는 데이터를 UITableViewController에 보내고 싶습니다.내 클래스에서 TableViewController로 데이터를 보낸 후 NSArray가 비어 있습니다.
어떻게 해결할 수 있습니까?
@interface Data : NSObject
@property(nonatomic,strong) NSMutableArray *data;
-(NSMutableArray *) loadData;
-(id)init;
@end
@implementation Data
@synthesize data;
-(id)init {
self = [super init];
if(self){
self.data = [[NSMutableArray alloc]init];
}
return self;
}
- (NSMutableArray *)loadData {
NSString *url = @"http://localhost/xampp/flashbackapi/";
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
[data addObject:responseObject];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error %@",error);
}];
return data;
}
@end
#import <UIKit/UIKit.h>
#import "Club.h"
#import "Data.h"
@interface ClubsTableViewController : UITableViewController
@property(nonatomic,strong) Data *holderData;
@property(nonatomic,strong) NSMutableArray *teams;
@end
#import "AFNetworking.h"
@implementation ClubsTableViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.holderData = [[Data alloc]init];
self.teams = [[NSMutableArray alloc]init];
self.teams = self.holderData.loadData;
NSLog(@"%@",self.teams); //this array is empty.. why?
}
초보자 (당신이 hahah를 볼 수 있듯이)는 나를 위해서 조금 이상합니다. – Navid
문제 없습니다. 유지 사이클이 발생하지 않도록 weak 셀을 추가했습니다. – gavdotnet
TableViewController의 ViewDidLoad에서 [self loadDataWithCompletionBlock] 메서드를 호출하므로 ClubsTableViewController refrence를 보유 할 필요가 없습니다. 사실 제가 한 가지 질문이있었습니다. 올바른 방법입니까? 왜냐하면 저는 항상 컨트롤러와 뷰의 데이터 분리를 유지하는 법을 배웠기 때문입니다. 그러나 내가 loadSiteViewController에서 loadDataWithCompletionBlock을 구현할 때 콜백이 필요하지 않지만 올바른 방법일까요? – Navid