0

私は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];
}

次に、次の方法で出力を提供する3番目のクラスにGeoFenceReferenceDetailsのオブジェクトを作成します。

{
directionType = None;
fenceCode = 12;
fenceId = 81;
fenceName = "ABC";
geoFenceType = Circle;
}

これが私がしていることです。3番目のクラスでGeoFenceReferenceDetailsの「fenceDetails」オブジェクトを作成してから、次のようにします。

 fenceDetails = [[GeoFenceReferenceDetails alloc] init];

fenceDetails.fenceId=[NSNumber numberWithInt:121];
 NSLog(@"%i",[fenceDetails.fenceId intValue]);
  NSDictionary* geoFenceReference = [[Utility sharedInstance] createGeoReferenceDict2:fenceDetails];

NSLog(@"%@ ",[geoFenceReference description]);

しかし、私が得ているのは

{

}

手伝って頂けますか ?

4

2 に答える 2

0

これは、ディクショナリオブジェクトが割り当てられていないか、値が含まれていないことを意味します。

確認する必要のあることがいくつかあります。

  1. sharedInstanceオブジェクトを割り当てるかどうかを確認しUtilityます。
  2. また、ディクショナリオブジェクトgeoFenceReferenceがnilでないことを確認してください。
  3. コードをデバッグするためにブレークポイントを設定します。
于 2012-09-24T06:03:56.583 に答える
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なしでこれを書いたので、タイプミスがあればお詫びします。お役に立てれば。

于 2012-09-24T06:22:42.033 に答える