私が持っている場合:
test.c
int test_func(){
}
そして、私はやりたかった:
test.m
[self test_func]
ファイルに関してファイルをどの.h
ように設定する必要がありtest.c
ますか。このような質問がここで回答されているのを見たことがありますが、ブックマークに失敗したため、追跡できません。コマンド.h
を含むファイルが含まれていました。extern
どんな助けでも大歓迎です。
私が持っている場合:
test.c
int test_func(){
}
そして、私はやりたかった:
test.m
[self test_func]
ファイルに関してファイルをどの.h
ように設定する必要がありtest.c
ますか。このような質問がここで回答されているのを見たことがありますが、ブックマークに失敗したため、追跡できません。コマンド.h
を含むファイルが含まれていました。extern
どんな助けでも大歓迎です。
特別な方法で宣言test_func
し、さまざまな Objective-C ランタイム API 関数を使用して、そのメソッド実装をクラスのメソッド リストに「アタッチ」することができますが、これを行う最も簡単な方法は次のとおりです。
testfunc.h
#ifndef TESTFUNC_H
#define TESTFUNC_H
int test_func();
#endif
testfunc.c
#include "testfunc.h"
int test_func()
{
return 4;
}
TestClass.h
#import <Foundation/Foundation.h>
@interface TestClass : NSObject
- (int) test_func;
@end
testclass.m
#import "TestClass.h"
#import "testfunc.h"
@implementation TestClass
- (int) test_func
{
return test_func();
}
@end
実行時にメソッドを追加したい場合は、次のリンクを参照してください。
C 関数を呼び出すような些細なことは、保守性と可読性のために、動的なメソッドの注入/解決を避ける必要があることに注意してください。質問で説明していない下心を持っていない限り、プラン A (単純なルート) を使用してください。