在objective c中的第三个类中创建不同类的对象并修改细节

时间:2012-09-24 05:53:02

标签: iphone objective-c ios

我是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]);

但我得到的只是

{

}

你能帮助我吗?

2 个答案:

答案 0 :(得分:0)

这意味着您的字典对象未分配或不包含任何值。

您需要检查的内容很少。

  1. 检查sharedInstance是否分配Utility对象。
  2. 还要确保字典对象geoFenceReference不是nil。
  3. 将断点设为调试代码。

答案 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的情况下写这个,所以我为错别字道歉,如果有的话。希望这会有所帮助。