2016-10-24 2 views
0

Я использую 2 NSObject класс,Доступ к недвижимости от другого NSObjectClass

Первый класс NSObject некоторые свойства и имеет несколько значений. Во втором классе NSObject я хочу получить доступ к первым свойствам класса nsobject. Я попытался немного, она показывает нулевые значения Вот мой код Мой первый NSObject класс FieldData.M

-(instancetype)initWithDictionary:(NSDictionary *)dictFieldData 
{ 
if (self = [super init]) { 

    ///set the field id 
    self.fieldId = [[dictFieldData objectForKey:@"f_id"]intValue]; 
    self.display = [[dictFieldData objectForKey:@"f_display"]boolValue]; 
    self.fieldLength = [[dictFieldData objectForKey:@"f_length"]intValue]; 
    self.mandatory = [[dictFieldData objectForKey:@"f_mandatary"]boolValue]; 
    self.strFieldLabel = [dictFieldData objectForKey:@"f_label"]; 

    NSString *strFieldAttrib = [dictFieldData objectForKey:@"f_attribute"]; 
    if ([strFieldAttrib.lowercaseString isEqualToString:@"alpha"]) { 

     self.fieldAttribute = FieldAttributeAlpha; 
    } 
    else if ([strFieldAttrib.lowercaseString isEqualToString:@"numeric"]) { 

     self.fieldAttribute = FieldAttributeNumeric; 
    } 
    else if ([strFieldAttrib.lowercaseString isEqualToString:@"alpha_numeric"]) { 

     self.fieldAttribute = FieldAttributeAlphaNumeric; 
    } 

    }return self; 
    } 

**** Второй NSObjectClass ** SiteData.m **

-(instancetype)initWithDictionary:(NSDictionary *)dictSiteData 
{ 

self.fieldData = [FieldData new]; 

if (self = [super init]) { 


    self.siteId = [[dictSiteData objectForKey:@"s_id"]intValue]; 

    self.siteName = [dictSiteData objectForKey:@"site_name"]; 

    NSLog(@"%d",self.fieldData.fieldId); 





} 

return self; 
} 

Пожалуйста, кто HelpMe сделать это Пожалуйста, что я делаю неправильно заранее спасибо !!!

ответ

0

Пожалуйста, введите этот код в Appdelegate Задать вопрос владельцу недвижимости. После этого SetValue вашего словаря данные

@property(strong,nonatomic)NSDictionary * dictFieldData; 

Написать этот код Моего первого NSObject класс FieldData.M Создать объект в ViewdidLoad

AppDelegate *appdelegate ((AppDelegate *)[[UIApplication sharedApplication] delegate]); 


///set the field id 
self.fieldId = [[appdelegate.dictFieldData SetValue:(NSString*) objectForKey:@"f_id"]intValue]; 

///Get the field id 
self.siteId = [[appdelegate.dictSiteData Valueforkey:@"s_id"]intValue]; 

NSLog(@"%d",appdelegate.dictSiteData); 

Проверьте это post ответа для доступа собственности другого NSObjectClass

+0

@thnaks, Himanshu Patel, я хочу получить доступ к собственности во втором nsobject clss только, как я могу это сделать, пожалуйста, помогите мне –

+0

@AgalSivamanoj Check Edit. –

+0

@thanks Himanshu Patel, отлично работает, еще одна вещь User * userData = [[User alloc] initWithDictionary: userProfileData]; –

0

[FieldData new] по умолчанию вызовет метод init, а не initWithDictionary. Если вы не определили init, чтобы установить значения для вашего свойства, он по умолчанию будет nil. Вероятно, вам нужно создать свой объект, используя [[FieldData alloc] initWithDictionary:...] (или [FieldData newWithDictionary:...], если вы определили этот метод). HTH

+0

Я использовал все еще, показывая нулевые значения. Plesae any helpme –

+0

@AgalSivamanoj - отредактируйте свой вопрос и покажите интерфейс для 'FieldData', все это' init' и 'new', а также обновленный код' SiteData', который создает экземпляр 'FieldData'. – CRD

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