我正在使用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;
}
请有人帮忙做这件事 请问我做错了什么 在此先感谢!!!
答案 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的访问属性