我正在尝试从我的模型中加载一些JSON数据。 但我想使用一个块,所以我可以检查是否有完整是或否的数据。 但是我从我的viewdidload调用我的块设置了一个断点来检查它是否被调用并且它来自块,而不是跳过块之间的所有内容。
BlaVIewController.m
#import "MKDataSource.h"
@interface BlaViewController ()
@property (strong, nonatomic) MKDataSource *dataSource;
@property (strong, nonatomic) IBOutlet UITableView *tableView;
@end
@implementation BlaViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.dataSource = [[MKDataSource alloc] init];
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self.dataSource loadData:^(BOOL complete, NSError *error) {
if (complete) {
//[self.tableView reloadData];
NSLog(@"There is data");
} else {
// error
NSLog(@"No data found");
}
}];
// Do any additional setup after loading the view.
}
我的MKDataSource.m
@interface MKDataSource ()
@property (strong, nonatomic) NSDictionary *data;
@end
@implementation MKDataSource
- (void)loadData:(bool_complete)complete {
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
self.data = [NSJSONSerialization JSONObjectWithData:response options:0 error:nil];
NSLog(@"JSON Data %@", self.data);
complete(YES, nil);
}
请解释我做错了什么。我检查JSON,它的工作原理。 (我删除了JSON网址并将其替换为google.com。保护我的数据)
答案 0 :(得分:0)
将self.dataSource = [[MKDataSource alloc] init];
从initwithnibname移至viewdidload。
WORKS