2014-10-20 3 views
0

Основываясь на некотором R & D, я пытаюсь реализовать MVVM для iOS. Но не удалось инициализировать свойства View Model.Как инициализировать свойства ViewModel в MVVM iOS

Вот мой Prob:

Мой View Controller:

В viewDidLoad:

invViewModel = [[MVVMHomeInvViewModel alloc] init];

В «cellForRowAtIndexPath», одной из пользовательских ячеек,

if(indexPath.row==2){... 
    UILabel *categoryLabel = [[UILabel alloc]init]; 
    categoryLabel.text= invViewModel.categoryLabel; 
    … 
} 

И мой ViewModel:

.h: 
@property (nonatomic,retain) NSString *categoryLabel; 

.m: 
@interface MVVMViewModel() 


// Private Access 
@property (nonatomic, strong) MVVMModel *homeModel; 
@end 

@implementation MVVMHomeInvViewModel 

- (instancetype)initWithHomeItems:(MVVMModel *)items{ 
    self = [super init]; 
    if (!self) return nil; 
    _categoryLabel = @"Categories"; 

    return self; 
} 

@end 

Теперь ярлык «Catgeories» не отображается в моем симуляторе. !!

Спасибо за помощь!

+0

Я удивлен более чем 1k rep, так что вы не можете правильно форматировать код в вопросе. Это облегчит чтение, если вы это сделаете. – borrrden

+0

упс! Прошу прещения за это. Я просто нажал Enter и представил в спешке. Я обязательно буду в будущем. Когда я переделал, @nickfalk ahd alreday выполнил мою работу. Благодаря! – Smitha

ответ

0

Я осознал свою вину. Виноват! Я не вызывал метод initilize - initWithHomeItems в ViewModel, вместо этого просто пытался получить к нему доступ с помощью универсального метода init.

homeInvCaptureViewModel = [[MVVMHomeInvViewModel alloc] initWithHomeItems]; 

Это решило проблему!