Вызов функции C в Objective-C Awake из Nib - PullRequest
1 голос
/ 18 февраля 2012

Мне пришлось реализовать функцию C в классе Objective-C, который обычно вызывается с int main (в своем собственном файле). Так как я не знаком со сращиванием кода, мне нужно знать, как вызывать его в awakefromnib или applicationDidFinishLaunching из раздела Какао. Или, если есть намного лучший способ сделать это, я слушаю.

Вот пример, не слишком технический:

// Cocoa Imports

#import "AppDelegate.h"
...

// C Inlcudes
#include <stdio.h> 

// (int main had to change to something else obviously)

int dos () { 
printf ("I'm a C program\n"); 
}

// (back to cocoa)

@implementation AppDelegate

@synthesize window;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{

//[This is where I need my C function above to execute]

1 Ответ

4 голосов
/ 18 февраля 2012

Он вызывается так же, как и из C, и вы можете вызывать любую функцию C, какую захотите:

// Cocoa Imports

#import "AppDelegate.h"
...

// C Inlcudes
#include <stdio.h> 

// (int main had to change to something else obviously)

int dos (const char *filename)
{ 
    printf ("I was passed '%s'\n", filename); 
}

// (back to cocoa)

@implementation AppDelegate

@synthesize window;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    dos("/path/to/some/file");
}
...