2

xcode から cocoa dylib テンプレートを作成し、Apple のドキュメントに従ってヘッダー ファイルを追加しました。

Person.h には次のコードがあります

#import <Cocoa/Cocoa.h>

@protocol Person

- (void)setName:(NSString*)name;

- (NSString*)name;

@end

@interface Person : NSObject <Person>{

@private

    NSString* _person_name;

}

また、Titling.h には次のコードがあります。

#import <Cocoa/Cocoa.h>

#import "Person.h"



@protocol Titling

- (void)setTitle:(NSString*)title;

@end

@interface Person (Titling) <Titling> {

}

@end

それが私のdylib.andコンパイルされたすべてのコードで、エラービルドは成功しませんでした。

この後、新しいココア アプリケーションを作成し、dylib(cocoaLibrary.dylib) をリソース フォルダー cocoa アプリケーションにドラッグしました。アプリケーションにコードを追加しましたdidFinishLaunching

#import "loadCocoaLibAppDelegate.h"

#import <dlfcn.h>

#import "Person.h"

#import "Titling.h"

@implementation loadCocoaLibAppDelegate

@synthesize window;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    // Insert code here to initialize your application 


    //NSAutoreleasePool* pool = [NSAutoreleasePool new];



    // Open the Person library.

    void* lib_handle = dlopen("./libPerson.dylib", RTLD_LOCAL);

    if (!lib_handle) {

        exit(EXIT_FAILURE);

    }



    // Get the Person class (required with runtime loaded libraries).

    Class Person_class = objc_getClass("Person");

    if (!Person_class) {

        exit(EXIT_FAILURE);

    }



    // Create an instance of Person.

    NSObject<Person,Titling>* person = [Person_class new];



    // Use person.

    [person setName:@"Perrine LeVan"];

    NSLog(@"[%s] main: [person name] = %@", __FILE__, [person name]);

    [person setTitle:@"Ms."];

    NSLog(@"[%s] main: [person name] = %@", __FILE__, [person name]);



    // Dispose of person.

    [person release];



    // Close the Person library.

    if (dlclose(lib_handle) != 0) {

        exit(EXIT_FAILURE);

    }



   // [pool release];

}

@end

Person.h: そのようなファイルまたはディレクトリはありません

Titling.h: そのようなファイルまたはディレクトリはありません

本当にこれを解決する方法がわかりません。助けてください。

4

0 に答える 0