从另一个NSObjectClass访问属性

时间:2016-10-24 06:04:21

标签: objective-c nsobject

我正在使用2个nsobject类,

首先是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;
}

请有人帮忙做这件事 请问我做错了什么 在此先感谢!!!

2 个答案:

答案 0 :(得分:0)

默认情况下,

[FieldData new]会调用init方法,而不是initWithDictionary方法。除非您已定义init为您的媒体资源设置值,否则默认为nil。您可能需要使用[[FieldData alloc] initWithDictionary:...]创建对象(如果已定义该方法,则为[FieldData newWithDictionary:...])。 HTH

答案 1 :(得分:0)

请在Appdelegate中写下此代码,声明此属性。 之后SetValue您的词典数据

@property(strong,nonatomic)NSDictionary * dictFieldData;

编写此代码 My First 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的访问属性