2013-12-10 3 views
1

My JSON Принести:JSONModel: Невозможно назначить сгружен JSON для моделирования

{"username":"example","confirmed_rewards":"5","round_estimate":"0.73605946","total_hashrate":"0","payout_history":"10","round_shares":"85", 

"workers":{ 
"worker.1":{"alive":"0","hashrate":"0"}, 
"worker.2":{"alive":"0","hashrate":"0"} 
} 
} 

Моя модель:

#import "JSONModel.h" 


@protocol LKCoinFCPoolModel @end 

@interface LKCoinFCPoolModel : JSONModel 

@property (strong, nonatomic) NSString* username; 
@property (strong, nonatomic) NSString* confirmed_rewards; 
@property (strong, nonatomic) NSString* round_estimate; 
@property (strong, nonatomic) NSString* total_hashrate; 
@property (strong, nonatomic) NSString* payout_history; 
@property (strong, nonatomic) NSString* round_shares; 
@property (strong, nonatomic) NSString<Optional> * ErrorCode; 

@end 

Я создал следующую функцию, чтобы принести структуру JSON и назначить его к модели.

-(void)viewDidAppear:(BOOL)animated 
{ 

    //show loader view 
    [HUD showUIBlockingIndicatorWithText:@"Fetching JSON"]; 

    //fetch the feed 
    LKCoinFCPoolModel* test; 
    test = [[LKCoinFCPoolModel alloc] initFromURLWithString:@"http://example.com/ap/key" 

          completion:^(LKCoinFCPoolModel *model, JSONModelError *err) { 

                      //hide the loader view 
                      [HUD hideUIBlockingIndicator]; 

                      //json fetched 
                      NSLog(@"user: %@", test.username); 

                     }];} 

проблема у меня в том, что вместо user: example печатает user: (null).

Я не уверен, что я делаю неправильно, это первое приложение, которое я пытаюсь написать в xcode (я исхожу из фона Python/Java).

+0

Вы печатаете пользователя или имя пользователя? – portforwardpodcast

+0

Пользователь: это просто строка (для форматирования), имя пользователя - это переменная, которую я хочу напечатать –

+0

Возможно, мне что-то не хватает, но вы не хотите, чтобы 'NSLog (@" user:% @ ", model.username) ; 'или, может быть, даже' NSLog (@ "user:% @", [имя модели]]; ' – portforwardpodcast

ответ

0

Ваш обратный вызов передает проанализированный JSON вам в модели LKCoinFCPoolModel *. На самом деле я не думаю, что вы можете назначить тест так, как вы. Если вы действительно хотели попасть в тестовую модель, вы должны назначить ее внутри блока. Помните, что этот блок работает асинхронно после загрузки и анализа JSON. Таким образом, тест не будет действителен до тех пор.

Смежные вопросы