我试图弄清楚如何创建一个填充UITableView的字符串列表,并确保每个单元格的大小适合每个字符串(某些字符串可能会很长)
我要做的是声明一个tempArray来保存项目列表,因为我正在填充数组。
在我的.h文件中,我声明如下:
@interface BusinessTopicController : UIViewController <UITableViewDataSource, UITableViewDelegate>
....
@end
NSMutableArray *newArray;
但是当我尝试这样做时,在.m文件中:
@implementation BusinessTopicController
@synthesize newArray;
我收到此语法错误:
属性实现必须在@interface
中声明但是当我把它添加到@interface
时@property (nonatomic, retain) NSMutableArray *newArray;
然后它在@synthesize newArray上给了我一个不同的错误;是这样的:
Property's synthesized getter follows cocoa naming convention for returning 'owned' objects
我搜索了这个问题并且解决方案似乎有点矫枉过正,因为在我看来,我只是在某处犯了一些愚蠢的错误。
任何建议都非常感谢!
答案 0 :(得分:3)
“属性的合成getter遵循可可命名约定 ...”生成编译器错误,因为您的属性以new
开头,这意味着合成的getter方法以new
开头,这是为返回+1保留对象的方法保留的。因此,请尝试为该物业找到另一个名称。
使用最新版本的Xcode和clang编译器,您只需在界面中声明@property
即可。你甚至可以跳过@synthesize
,并为你合成一个下划线前缀的ivar。完全删除NSMutableArray *newArray;
行,因为它位于界面之外,基本上是一个全局变量。
如果您想将该属性保密,您也可以在.m文件中的匿名类别/类扩展名中声明它,如下所示:
// At the top of BusinessTopicController.m
@interface BusinessTopicController ()
@property (nonatomic, retain) NSMutableArray *theArray;
@end