从另一个 NSObject 类访问 属性

Accessing Property from another NSObjectClass

我正在使用 2 个 nsobject class ,

第一个 nsobject class some 属性 并且它包含一些值。 在第二个 NSObject class 中,我想访问第一个 nsobject class 属性。 我尝试了一点,它显示空值 这是我的代码 我的第一个 NSObject class 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;
}

请任何人帮我做这件事 请问我做错了什么 提前致谢!!!

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

请在 Appdelegate 声明此 属性 中编写此代码。 之后 SetValue 你的字典数据

@property(strong,nonatomic)NSDictionary * dictFieldData;

写这段代码 我的第一个 NSObject class 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);

检查此 post 从另一个 NSObjectClass

访问 属性 的答案