2016-10-24 12 views
0

2 nsobjectクラスを使用しています。別のNSObjectClassからプロパティにアクセスする

最初のnsobjectクラスはいくつかのプロパティを持ち、いくつかの値を保持しています。 2番目のNSObjectクラスでは、最初のnsobjectクラスのプロパティにアクセスします。私は少しを試してみました 、それはNULL値 を示すことはここで** 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私のコード マイファーストNSObjectクラスであります

-(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.MViewdidLoad

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); 

チェックで別のNSObjectClass

からプロパティにアクセスするために、この post答えを、オブジェクトを作成します。
+0

@thnaks、Himanshu Patel、私は2番目のnsobject clssのプロパティにアクセスしたい、どうすれば助けてください助けてください –

+0

@AgalSivamanojチェックを編集します。 –

+0

@thanks Himanshu Patel、うまく動作しています。もう一つUser * userData = [[User alloc] initWithDictionary:userProfileData]; –

0

[FieldData new]は、デフォルトでは、initWithDictionaryではなくinitメソッドを呼び出します。プロパティの値を設定するためにinitを定義していない限り、デフォルトではnilになります。 [[FieldData alloc] initWithDictionary:...](またはその方法を定義している場合は[FieldData newWithDictionary:...])を使用してオブジェクトを作成する必要があります。 HTH

+0

まだnull値を表示しています.Plesae anyone helpme –

+0

@AgalSivamanoj - あなたの質問を編集し、 'FieldData'のインターフェース、' init'と 'new'メンバーのすべて、' FieldData'インスタンスを作成する改訂された 'SiteData'コードを表示します。 – CRD

関連する問題