如果已经被问到并回答了我的道歉。我是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应用程序。
谁能看到我做错了什么?
提前谢谢。
答案 0 :(得分:2)
我怀疑它是assign
中的@property (assign)
属性。使用strong
(默认值)来让ARC正确管理字符串对象。