Локальное объявление size
внутри init
скрывает переменную экземпляра size
вашего класса.
Как сказано в предупреждении.
Переименуйте свой локальный size
в aSize
или что-то подобное, чтобы избавиться от предупреждения (и потенциальных ошибок, которые, скорее всего, не появятся в этом случае)
Например:
- (id)init {
size_t aSize = sizeof(st);
self=[super initWithID:ID withData:(id)pData withSize:aSize];
if (self) {
}
return self;
}