使用NSMutableStrings管理NSMutableArray的内存

时间:2014-10-23 15:14:45

标签: objective-c macos

如果已经被问到并回答了我的道歉。我是Objective-C的新手,我正在尝试创建一个包含NSMutableString对象的项目,我正在创建这些对象的NSMutableArray

对象中的每个字符串都声明如下:

@property (assign) NSMutableString* propname;

在对象的初始化例程(initStringObject)中,我按如下方式设置每个字符串:

self.propname = [NSMutableString stringWithCapacity:16];
[self.propname setString:@"Name"];

有许多属性有多个NSMutableStrings,有几个NSInteger和一个浮点数。所有NSMutableStrings都分配了不同的容量。

对于NSMutableArray,我在视图控制器.m文件的接口部分声明如下:

@property (strong) NSMutableArray *objectarray;

在loadview中,例程我按如下方式初始化数组:

self.objectarray = [NSMutableArray array];
[self.objectarray addObject:[[StringObject alloc] initStringObject];

项目构建正常,但是当我使用对象中的信息填充视图时,字符串已损坏。对象中的整数和浮点值是正确的。我想我必须丢失指向内存中正确位置的指针,但我无法弄清楚发生了什么。最后,如果我继续运行该程序,我会收到EXC_BAD_ACCESS错误消息。

这是OS X应用程序。

谁能看到我做错了什么?

提前谢谢。

1 个答案:

答案 0 :(得分:2)

我怀疑它是assign中的@property (assign)属性。使用strong(默认值)来让ARC正确管理字符串对象。