Неявное объявление и ошибка при вставке функции в XCode - PullRequest
0 голосов
/ 01 января 2012

Прежде всего, с наступающим Новым годом всех, кто читает это!

У меня есть приложение для i-phone, над которым я работаю, и я хотел улучшить IBACTION (GetNextElement), который вызывается нажатием кнопки. Я хотел вызвать функцию (get_index_to_use), а не вставлять код в GetNextElement. Когда я вызываю функцию в моем файле SymbolTest.m, я получаю предупреждение "implicit declaration of function get_index_to_use".

Я получаю ошибку в сборке, которую не вижу, если не захожу в результаты сборки, где вижу следующее:

Ld build / Debug-iphonesimulator / elements1.app / elements1 обычный i386 cd / Пользователи / Папа / Документы / elements1 setenv MACOSX_DEPLOYMENT_TARGET 10.6 Сетенв ПУТЬ "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -L / Пользователи / папа / Documents / elements1 / build / Debug-iphonesimulator -F / Пользователи / папа / Documents / elements1 / build / Debug-iphonesimulator -filelist /Users/dad/Documents/elements1/build/elements1.build/Debug -iphonesimulator / elements1.build / Объекты-нормальный / i386 / elements1.LinkFileList -mmacosx-version-min = 10.6 -Xlinker -objc_abi_version -Xlinker 2 -создание основы -framework UIKit -framework CoreGraphics -o /Users/dad/Documents/elements1/build/Debug-iphonesimulator/elements1.app/elements1100100

Неопределенные символы: "_get_index_to_use", на которые ссылаются из: - [SymbolTest GetNextElement:] в SymbolTest.o ld: символ (ы) не найдены collect2: ld вернул 1 состояние выхода

Я не знаком с SymbolTest.o.

У меня есть функция в коде перед GetNextElement. Я попытался поместить это в SymbolTest.h. Я попытался поместить его в GetNextElement, но не смог заставить это работать. Я пытался - и +. Функция выглядит следующим образом (в конце концов я хочу изменить способ вычисления индекса, но сейчас я просто увеличиваю его, чтобы заставить функцию работать):

- (void)get_index_to_use {
    el_tbl_idx++;
}   

Любая помощь будет оценена. Спасибо.

1 Ответ

2 голосов
/ 01 января 2012

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

, которую вы захотите использовать (функция стиля C) ...

void get_index_to_use (void)
{ el_tbl_idx++; }

затем позвоните по номеру:

get_index_to_use()

или

- (void) get_index_to_use
{el_tbl_idx++; }

и позвоните по номеру:

[self get_index_to_use];

или более обобщенно:

[someObject get_index_to_use];

но, как правило, хорошая идея придерживаться соглашений об именах, одно из которых, если ваш метод начинается с get, он должен быть getter и возвращать что-то.Следующее выглядит более Obj-C.

-(NSUInteger)getIndex {
     el_tbl_idx+=1; // or ++ or = x+1;
     return el_tbl_idx; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...