.mファイル内で関数を宣言する方法を知っていると思いましたが、ここでリンカーエラーが発生します。これを.hファイルで宣言します。
#import <Foundation/Foundation.h>
// Other rimports
void SQLite3HelperHandle(NSError* error);
@interface SQLite3Helper : NSObject
// Method signatures
@end
次に、.mファイルで:
#import "SQLite3Helper.h"
void SQLite3HelperHandle(NSError* error)
{
// Method body
}
@implementation SQLite3Helper
// Methods implementation
@end
しかし、リンカエラーが発生します。エラーには多くの読み取り不可能な情報が含まれています。関連するのは次のとおりです。
「_SQLite3HelperHandleError」、参照元:
また、インラインで宣言するにはどうすればよいですか?ヘッダーで次のように宣言してみました。
extern inline void SQLite3HelperHandle(NSError* error);
そして通常は.mファイルにあります:
void SQLite3HelperHandle(NSError* error);
他の方法も試しましたが、そのリンカーエラーをサイレントにする方法は見つかりませんでした。
マクロと同じくらい速いはずですが、関数を書くには長すぎるので、型チェックを好むので、インライン関数が必要です。