我面临一个非常奇怪的问题。我创建了一个对象,并将其添加到NSMutableArray中,但是当我在插入它后尝试读取它时,该对象的某些子类会变为一些奇怪的类,例如
PINGIFAnimatedImageManager
这是我用来创建对象并将其插入NSMutableArray的代码:
CustomContentGridRow *row = [[CustomContentGridRow alloc]init];
row.child1 = [dataManager getMapLocation]; // This is the MapLocation object that will change to this weird PINGIFAnimatedImageManager
row.useFullWidth=1;
row.index=0;
[arrCustomChilds addObject:row];
这是CustomContentGridRow类:
@interface CustomContentGridRow : NSObject
@property (nonatomic, assign) MapLocation *child1;
@property (nonatomic, assign) MapLocation *child2;
@property (nonatomic, assign) int useFullWidth;
@property (nonatomic, assign) int index;
@end
因此,当我在[arrCustomChilds addObject:hotelRow];
这行上设置断点时,当我读取row
对象时,便得到了预期的结果。但是,当我在上述代码后放置一个断点以读取arrCustomChilds
时,child1的类更改为一些奇怪的类。同样,有时它不会更改为另一个类,但会给出nil值。
知道为什么会这样吗?
答案 0 :(得分:1)
您应该将类对象的属性修饰符从“分配”更改为“强”。否则会发生不确定的行为。
答案 1 :(得分:0)
在Xcode中->产品->方案-编辑方案。检查运行模式的设置。如果是Release,则更改为Debug。
这将为您提供正确的值
更改以下属性
@property (nonatomic, strong) MapLocation *child1;
@property (nonatomic, strong) MapLocation *child2;
指定为强人
答案 2 :(得分:0)
您的界面应为:
@interface CustomContentGridRow : NSObject
@property (nonatomic, strong) MapLocation *child1;
@property (nonatomic, strong) MapLocation *child2;
@property (nonatomic, assign) int useFullWidth;
@property (nonatomic, assign) int index;
@end
类对象应该是强壮的,不能分配