#iphone #ios #ipad #pointers
#iPhone #iOS #iPad #указатели
Вопрос:
Хорошо, у меня есть пользовательский объект (подкласс NSManagedObject, если это имеет значение), и я хочу передать указатель на один из его IVAR функции, которую я настроил для изменения таких значений. С обычным указателем вы бы просто добавили к нему префикс амперсанда (amp;), как в классическом примере NSError amp; error, но это невозможно сделать с помощью точечной записи. Я не могу просто передать amp;object.iVar, как я и надеялся. Кто-нибудь может предложить простой и элегантный способ получения указателя iVar, чтобы я мог его передать? Я не хочу передавать весь объект по соображениям структуры кода и аккуратности.
-Ash
Ответ №1:
Ага, как это почти всегда бывает, я задаю вопрос после часа разочаровывающих размышлений, а через десять минут отвечаю на него сам. Я не знаю, возможно, задавать вопросы — это своего рода терапевтический триггер для получения ответов… жаль, что это не сайт по психологии.
В любом случае, мое решение состояло в том, чтобы добавить новый метод ‘псевдопоглотителя’ к объекту, из которого я пытаюсь получить доступ к указателю, который выглядит примерно так:
- (Pointer **)getIVarPointer
{
return amp;iVar;
}
Это немного неуклюже, но поскольку у меня есть только тот iVar, указатель которого мне нужно получить, это не так уж плохо. С другой стороны, если есть более простой, «официальный» способ сделать это, я хотел бы его узнать!