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.
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.
Declare id referance variabe
#import <Cocoa/Cocoa.h>
id refToSelf;
que appel à l'aide
[refToSelf cameraCapture];
Oui. Cela aidera mais j'obtiens 'accédant _cachedSystemAnimationFence exige le fil principal " – NovusMobile
@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
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.
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
}
//
// 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
Pourquoi créez-vous la fonction c dans la classe vc? tout votre code semble objectif c –
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
'- (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