我是IOS开发的新手。我有一个包含foll的课程。细节:
@interface GeoFenceReferenceDetails : NSObject {
NSString* directionType;
NSString* fenceCode;
NSNumber* fenceId;
NSString* fenceName;
NSString* geoFenceType;
}
另一课"实用工具"用于创建字典:
-(NSDictionary *) createGeoReferenceDict2: (GeoFenceReferenceDetails *) geoFenceDetails {
return [NSDictionary dictionaryWithObjectsAndKeys:
geoFenceDetails.directionType, @"directionType",
geoFenceDetails.fenceCode, @"fenceCode",
geoFenceDetails.fenceId, @"fenceId",
geoFenceDetails.fenceName, @"fenceName",
geoFenceDetails.geoFenceType, @"geoFenceType",
nil];
}
现在我想在第三个类中创建一个GeoFenceReferenceDetails对象,它以下列方式提供输出:
{
directionType = None;
fenceCode = 12;
fenceId = 81;
fenceName = "ABC";
geoFenceType = Circle;
}
这就是我在做什么。我正在创建一个" fenceDetails"第三个类中GeoFenceReferenceDetails的对象然后执行此操作:
fenceDetails = [[GeoFenceReferenceDetails alloc] init];
fenceDetails.fenceId=[NSNumber numberWithInt:121];
NSLog(@"%i",[fenceDetails.fenceId intValue]);
NSDictionary* geoFenceReference = [[Utility sharedInstance] createGeoReferenceDict2:fenceDetails];
NSLog(@"%@ ",[geoFenceReference description]);
但我得到的只是
{
}
你能帮助我吗?
答案 0 :(得分:0)
这意味着您的字典对象未分配或不包含任何值。
您需要检查的内容很少。
sharedInstance
是否分配Utility
对象。geoFenceReference
不是nil。答案 1 :(得分:0)
将此添加到您的.h接口类声明:
@interface GeoFenceReferenceDetails : NSObject {
NSString* directionType;
NSString* fenceCode;
NSNumber* fenceId;
NSString* fenceName;
NSString* geoFenceType;
}
@property (nonatomic, retain) NSString *directionType;
@property (nonatomic, retain) NSString *fenceCode;
@property (nonatomic, retain) NSString *fenceId;
@property (nonatomic, retain) NSString *fenceName;
@property (nonatomic, retain) NSString *geoFenceType;
这是你的.m实现文件
@synthesize directionType, fenceCode, fenceId, fenceName, geoFenceType;
- (void)dealloc {
self.directionType = nil;
self.fenceCode = nil;
self.fenceId = nil;
self.fenceName = nil;
self.geoFenceType = nil;
[super dealloc];
}
- (NSString *)description {
return [NSString stringWithFormat:@"%@ %@ %@ %@ %@ %@", self, self.directionType, self.fenceCode, self.fenceId, self.fenceName, self.geoFenceType];
}
在没有IDE的情况下写这个,所以我为错别字道歉,如果有的话。希望这会有所帮助。