0

我是一个做 iOS 的 .NET 和 java 程序员,我想我应该提一下(也许我偏向于业务对象、类)......无论如何。

我有一些对象以 JSON 的形式流入,我想让它们全部输入到一个数组中,我创建了一个简单的类来表示这个对象并初始化它的属性。

商务对象.h

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

商务对象.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-11T04:50:11.290 回答
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 回答