在接口 - Objective C中找不到属性'pData'的声明

时间:2011-05-11 14:37:48

标签: objective-c

如何声明一个字符数组,以便在类中定义的所有函数都可以将它与更新后的值一起使用。

在@synthesize定义中定义char数据[4096]时出错。

@interface A: NSObject
{
 char data[4096];
}
@property(nonatomic,retain)char data;
@end
@implementation A
@synthesize data
@end

我收到“在界面中找不到属性'pData'的声明”

1 个答案:

答案 0 :(得分:2)

不确定为什么会出现这个错误,但代码中有几件事显然是错误的:

  1. data实例变量和它的属性有不同的类型。财产申报应该是

    @property(nonatomic) char[4096] data; 
    
  2. 您必须仅对obj-c类型属性使用retain属性,对于普通c类型使用assign(或者不指定任何内容,因为默认情况下使用assign)

  3. 直接将指向char的指针暴露给更改可能不是一个好主意 - 更好地使您的属性只读并使用特殊方法来更改其内容:

    @property(nonatomic, readonly) char[4096] data;
    - (void) changeData:...//some parameters here
    
  4. P.S。可以考虑使用NSString*(或NSMutableString*)而不是char []?

    P.P.S。或者,如果您只是存储一些随机字节数据,请考虑使用NSData / NSMutableData。 (感谢@bbum建议)