iOS: у меня появляется сообщение об ошибке «Запрошен адрес выражения свойства» - PullRequest
0 голосов
/ 27 июня 2018

У меня проблема со строками кода:

memset(&array->objects[array->count] & memmove(&array->objects[objectIndex + 1UL] 

Вот весь код для информации:

if(!((array != NULL) && (array->objects != NULL) && (objectIndex <= array->count) && (newObject != NULL))) { [newObject autorelease]; return; }
  if((array->count + 1UL) >= array->capacity) {
    id *newObjects = NULL;
    if((newObjects = (id *)realloc(array->objects, sizeof(id) * (array->capacity + 16UL))) == NULL) { [NSException raise:NSMallocException format:@"Unable to resize objects array."]; }
      array->objects = *newObjects;
    array->capacity += 16UL;
    memset(&array->objects[array->count], 0, sizeof(id) * (array->capacity - array->count));
  }
  array->count++;
  if((objectIndex + 1UL) < array->count) { memmove(&array->objects[objectIndex + 1UL], &array->objects[objectIndex], sizeof(id) * ((array->count - 1UL) - objectIndex)); array->objects[objectIndex] = NULL; }
  array->objects[objectIndex] = newObject;

Я действительно понятия не имею об этой проблеме ...

Заранее спасибо.

1 Ответ

0 голосов
/ 27 июня 2018

Похоже, что вы жалуетесь на то, что вы пытаетесь получить адресный указатель на объект, который является свойством класса. В некоторой степени Objective C старается избегать использования своих свойств и объектов от использования языка C. Я бы предложил скопировать данные из вашего объекта в некую структуру C и использовать ее для копирования.

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