#objective-c
#objective-c
Вопрос:
Но я получаю ошибки при объявлении подобным образом.
@implementation data
-(void)SwapEndian:(uint8_t*)pData withBOOLValue:(bool)bIsAlreadyLittleEndian
{
data* datas = [data alloc];
[datas swapEndians:(uint8_t)amp;pData[nIndex] withSize:(sizeof(uint32_t));
}
-(void)swapEndians:(uint8_t*)pData withnByteSize:(int const)nByteSize
{
NSLog(@"swapEndians!!");
}
@end
Как вызвать функцию из другой функции внутри того же класса?
Ответ №1:
Для достижения этой цели вы можете использовать ключевое слово self.
[укажите свое функциональное имя];
Ответ №2:
Перво-наперво:
data* datas = [data alloc]; // Where is your init? Don't use un-initialized objects! [datas swapEndians:(uint8_t)amp;pData[nIndex] withSize:(sizeof(uint32_t));
Вторая вещь:
Если метод, который вы пытаетесь вызвать, является вторым из вашего кода, у вас опечатка в селекторе!
Эта строка должна гласить:
[datas swapEndians:amp;pData[nIndex] withnByteSize:sizeof(uint32_t)];
Третья вещь:
Вы отправляете сообщения самому себе с помощью self
.
Ответ №3:
Прежде всего, имя класса должно начинаться с заглавной буквы, вот, я думаю, вы пытаетесь сделать
@implementation Data //changed it just naming convention
-(void)swapEndian:(uint8_t*)pData withBOOLValue:(bool)bIsAlreadyLittleEndian
{
[self swapEndians:(uint8_t)amp;pData[nIndex] withSize:(sizeof(uint32_t));
}
-(void)swapEndians:(uint8_t*)pData withnByteSize:(int const)nByteSize
{
NSLog(@"swapEndians!!");
}
@end
Комментарии:
1. … и имена сообщений должны начинаться со строчной буквы