как вызвать функцию того же класса из других функций того же класса-Objective C

#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. … и имена сообщений должны начинаться со строчной буквы