В интерфейсе не найдено объявление свойства pData. Цель C - PullRequest
0 голосов
/ 11 мая 2011

Как объявить массив символов, чтобы все функции, определенные в классе, могли использовать его с обновленными значениями.

Получение ошибок при определении данных char [4096] в @synthesizeопределение.

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

Я получаю сообщение "В интерфейсе не найдено объявление свойства pData" *

1 Ответ

2 голосов
/ 11 мая 2011

Не знаю, почему вы получаете эту ошибку, но в вашем коде явно есть несколько вещей:

  1. data переменная экземпляра и свойство для нее имеют разные типы.Объявление свойства должно быть

    @property(nonatomic) char[4096] data; 
    
  2. Атрибут retain следует использовать только для свойств типов obj-c, для простых c-типов используйте assign (или не указывайте ничего, поскольку используется assignпо умолчанию)

  3. Использование указателя на char непосредственно для изменений может быть не очень хорошей идеей - лучше сделать ваше свойство доступным только для чтения и использовать специальный метод для изменения его содержимого:

    @property(nonatomic, readonly) char[4096] data;
    - (void) changeData:...//some parameters here
    

PS Может быть, стоит рассмотреть использование NSString* (или NSMutableString*) вместо char []?

PPS Или, если вы просто храните некоторые случайные байтовые данные, рассмотрите возможность использования NSData / NSMutableDataдля этого.(Спасибо @bbum за предложение)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...