0

私は iOS を使用している .NET および Java プログラマーです。

JSON としてストリーミングするいくつかのオブジェクトがあり、それらをすべて配列に入力したいので、このオブジェクトを表す単純なクラスを作成し、そのプロパティを初期化しました。

BizObject.h

   @interface BizObject : NSObject
   @property (readwrite, copy) NSString* back;
   @property (readwrite, copy) NSString* front;
   @end

BizObject.m

 #import "BizObject.h"
 @implementation BizObject
 @synthesize front, back;
 //No init method, don't know if I need one !!
 @end

JSONエントリを取得したら、これを行います

  NSMutableArray *tempArray = [NSJSONSerialization
  JSONObjectWithData:JSONData
  options:NSJSONReadingAllowFragments
  error:&error];
  if (!tempArray) {
     NSLog(@"Error parsing JSON: %@", error);
  } else {

  for(NSDictionary *tempBizObject in tempArray) {
  BizObject * newBizObject = [[BizObject alloc] init];
     [newBizObject setBack: [tempBizObject valueForKey:@"back"]];
     [newBizObject setFront:[tempBizObject valueForKey:@"front"]];
     [bizObjectsArray addObject:newBizObject];
  }
}
for(BizObject *bizObject in bizObjectsArray) {
   NSLog(@"back: %@", bizObject.back);
   NSLog(@"fron: %@", bizObject.front);
}

ここでいくつか質問があります:

1 : この種の設定で何か問題がありますか?

2 : このエラーが発生しています

  malloc: *** error for object 0x165060: pointer being freed was not allocated

3 : オブジェクトの配列を作成するだけではやり過ぎですか?そのプロパティはすべて単なる文字列ですか??

助けてくれてありがとう。

4

3 に答える 3

0

表示されているコードでは問題ありません。クラッシュは別のオブジェクトです。ゾンビ オブジェクトを有効にして、クラッシュの詳細を確認します。

于 2013-06-12T14:39:04.060 に答える
0

使用する

@interface BizObject : NSObject
@property (nonatomic, retain) NSString* back;
@property (nonatomic, retain) NSString* front;
@end

この優れた回答を読む

于 2013-06-12T14:10:31.870 に答える
0

割り当てられていないオブジェクトを解放しています。つまり、コードのどこかで既に解放されているオブジェクトを解放している、または作成されていないオブジェクトを解放していることを意味します。それを確認してください。上記のコードにはそのスニペットが含まれていません

于 2013-06-11T04:50:11.290 に答える