2016-10-24 5 views
0

Ich bin mit 2 NSObject Klasse,Zugriff auf Immobilien von einem anderen NSObjectClass

Erste Klasse NSObject einige Immobilien und hält einige Werte. In der zweiten NSObject-Klasse möchte ich auf die ersten nsobject-Klasseneigenschaften zugreifen. ich wenig versucht haben, es Nullwerte zeigen Hier ist mein Code My First NSObject Klasse 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; 
    } 

**** Second 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; 
} 

Bitte jemand helpme, dies zu tun Bitte, was ich im Voraus falsch Dank tue !!!

Antwort

0

Bitte schreiben Sie diesen Code in Appdelegate deklarieren Sie diese Eigenschaft. Danach SetValue Ihre Wörterbuchdaten

@property(strong,nonatomic)NSDictionary * dictFieldData; 

schreiben Dieser Code My First NSObject Klasse FieldData.M Objekt erstellen in 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); 

prüfen diese post Antwort für den Zugriff auf Objekt von einem anderen NSObjectClass

+0

@thnaks, Himanshu Patel, ich möchte auf die Eigenschaft in zweiten nsobject clss nur zugreifen, wie kann ich das bitte helfen mir –

+0

@AgalSivamanoj Check Edit. –

+0

@thanks Himanshu Patel, funktioniert gut, noch eine Sache Benutzer * userData = [[User Alloc] initWithDictionary: userProfileData]; –

0

[FieldData new] wird standardmäßig die init Methode aufrufen, nicht die initWithDictionary eins. Sofern Sie init nicht definiert haben, um Werte für Ihre Eigenschaft festzulegen, wird standardmäßig nil festgelegt. Wahrscheinlich müssen Sie Ihr Objekt mit [[FieldData alloc] initWithDictionary:...] (oder [FieldData newWithDictionary:...], wenn Sie diese Methode definiert haben) erstellen. HTH

+0

Ich habe immer noch verwendet es zeigt null Werte .Please jemand helpme –

+0

@AgalSivamanoj - Bearbeiten Sie Ihre Frage und zeigen Sie die Schnittstelle für 'FieldData', alle' init' und 'new' Mitglieder und den überarbeiteten' SiteData' Code, der die 'FieldData' Instanz erzeugt. – CRD

Verwandte Themen