少なくともOSXでは、AppleのObjective-Cランタイムによってクラスがロードされる方法のために、ロードされたクラスの実装を含むダイナミックライブラリを動的にアンロードすることはできないことを私は知っています。これは、ヘッダーを参照するオブジェクトについてのみ知っているが、クラスのメソッド実装を含まないライブラリにも当てはまりますか?
わかりやすくするために、Objective-Cを使用してダイナミックライブラリを記述したいと思いますが、のようなシグネチャを使用して関数をロードおよびアンロードしますResultObject* performActionOnObject(SomeObject* object)
。
編集:
より明確にするために、次のような関数を検討してください
NSNumber* computeFactorial(NSNumber* operand){
NSUInteger n = [operand unsignedIntegerValue];
/// ... pure C loop omitted
return [NSNumber numberWithUnsignedInteger:n];
}
そして、それが呼び出されたときに自動解放プールがアクティブであると想定します。アンロードしても大丈夫ですか?