2017-03-16 2 views
0

Je souhaite appeler des données de c => objectif c (ios).Comment appeler la méthode objective c à partir de la méthode c iOS

ci-dessous J'ai partagé ma capture d'écran de code.

I WANT TO CALL data from c => objective c

+0

Pourquoi créez-vous la fonction c dans la classe vc? tout votre code semble objectif c –

+0

J'ai appelé CameraCaptureFromC à partir d'un fichier c. Je reçois l'erreur thisClass. Comme c'est le cas mais cela va avoir une erreur. – NovusMobile

+0

'- (void) cameraCapture {}' est une méthode Objective-C, et 'void CameraCaptureFromC() ...' est une fonction C. Mais quand vous faites 'cameraCapture()' vous dites que c'est une fonction C alors que ce n'est pas le cas. Aussi, s'il vous plaît ne postez pas de capture d'écran. Première raison? J'ajoute à copier/écrire manuellement votre code dans la réponse/commentaire pour signaler le problème. Et clairement, les développeurs sont paresseux. En outre, les images ont tendance à disparaître avec les hôtes. – Larme

Répondre

0

Declare id referance variabe

#import <Cocoa/Cocoa.h> 

id refToSelf; 

que appel à l'aide

[refToSelf cameraCapture]; 
+0

Oui. Cela aidera mais j'obtiens 'accédant _cachedSystemAnimationFence exige le fil principal " – NovusMobile

+0

@NovusMobile juste appelez la méthode dans le thread principal. Parce que si vous êtes des changements dans l'interface utilisateur liée que toutes les fonctions appelées dans le fil principal – iOS

0

Jusqu'à présent, vous avez obtenu des lignes correctes. Mais vous avez oublié d'inclure le fichier .h dans votre .c

En supposant que vous avez myiosclass.h où vous voulez appeler la méthode cameraCapture() présente dans le fichier mycclass.c.

Dans votre mycclass.c

#include "myiosclass.h" 

    void cameraCapture(){ 
    //your c code goes here... 
    } 

Dans votre myiosclass.h

extern void cameraCapture(); 

Dans votre myiosclass.m

-(void)myMethod { 
    cameraCapture(); //Called your C method. 

    //Rest of objective c code ... 
    } 

espérons qu'il vous aide.

0

passer le contrôleur de la vue actuelle en tant que paramètre dans la méthode c vous et l'utiliser

void CameraCaptureFromC(long cCameraClient, 
        const char *imageName, 
           void *object, 
        MasterViewController *vc) { 
    NSLog(@"glfm:Camera Call"); 
    [vc addAllImages]; 
    //your code 
} 
0
// 
// ViewController.m 
// test 
// 
// Created by colorsMacBook on 16/03/17. 
// Copyright © 2017 colors software. All rights reserved. 
// 

#import "ViewController.h" 

@interface ViewController() 

@end 



@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    someMethod(); 
} 

void someMethod(){ 
    printf("test123\n"); 
    [ViewController someMethod2:@"Calling objective C Method from C method"]; 
} 
+(void)someMethod2:(id)sender{ 
    NSLog(@"Message: %@",sender); 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 


@end 

ouvre une session de console

test123 16/03/2017 13: 22: 02,858 essai [1198 : 240019] Message: Appel de l'objectif C Méthode de la méthode C