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: そのようなファイルまたはディレクトリはありません
本当にこれを解決する方法がわかりません。助けてください。