2011-05-11 2 views
-1

Mais j'obtiens des erreurs lors de la déclaration comme ceci.comment appeler une fonction d'une même classe à partir d'autres fonctions de la même classe-Objectif C

@implementation data 

-(void)SwapEndian:(uint8_t*)pData withBOOLValue:(bool)bIsAlreadyLittleEndian 
{ 
data* datas = [data alloc]; 
[datas swapEndians:(uint8_t)&pData[nIndex] withSize:(sizeof(uint32_t)); 
} 

-(void)swapEndians:(uint8_t*)pData withnByteSize:(int const)nByteSize 
{ 
    NSLog(@"swapEndians!!"); 
} 

@end 

Comment appeler une fonction à une autre fonction dans la même classe?

Répondre

4

Vous pouvez utiliser self pour y parvenir.

[self yourFunctionName];

2

tout d'abord le nom de la classe doit commencer par lettre majuscule, voici, je pense que vous liez à faire

@implementation Data //changed it just naming convention 

    -(void)swapEndian:(uint8_t*)pData withBOOLValue:(bool)bIsAlreadyLittleEndian 
     { 
     [self swapEndians:(uint8_t)&pData[nIndex] withSize:(sizeof(uint32_t)); 
     } 

    -(void)swapEndians:(uint8_t*)pData withnByteSize:(int const)nByteSize 
     { 
     NSLog(@"swapEndians!!"); 
     } 

    @end 
+2

... et les noms des messages devraient commencer à partir de la lettre minuscule – 5hrp

+0

Oh, je l'ai raté: D, laissez-moi éditer à nouveau ... –

3

Pour commencer:

data* datas = [data alloc]; // Where is your init? Don't use un-initialized objects! 
[datas swapEndians:(uint8_t)&pData[nIndex] withSize:(sizeof(uint32_t)); 

Deuxième chose:
Si la méthode que vous essayez de ca ll est le deuxième de votre code, vous avez une faute de frappe dans le sélecteur! Cette ligne devrait être:

[datas swapEndians:&pData[nIndex] withnByteSize:sizeof(uint32_t)]; 

chose Troisième:
Vous envoyez des messages à vous-même en utilisant self.

Questions connexes