整数を返すメソッドがあり、小さな構造体またはクラスも返したいと思っています。C++ を使用している場合は、構造体への参照をパラメーターとして渡します。ARC を使用する iOS では、__autoreleasing 属性を持つポインターへのポインターを使用することと同等であると思いますが、これは少し面倒です。
2 つの値を含む配列を返すこともできますが、必要以上に割り当ててしまい、これを大量に (100,000 呼び出し) 使用する可能性があると考えられます。
整数を返すメソッドがあり、小さな構造体またはクラスも返したいと思っています。C++ を使用している場合は、構造体への参照をパラメーターとして渡します。ARC を使用する iOS では、__autoreleasing 属性を持つポインターへのポインターを使用することと同等であると思いますが、これは少し面倒です。
2 つの値を含む配列を返すこともできますが、必要以上に割り当ててしまい、これを大量に (100,000 呼び出し) 使用する可能性があると考えられます。
ARCでも、参照またはオブジェクトポインターによって構造体を渡すことができます...
C++ の場合と同じように、ref で構造体を渡します。&aStruct
-(int)getStuffOut:(SomeStruct *)aStruct {
if(!aStruct) {
return 0;
}
aStruct->myInt = 12345;
aStruct->myFloat = 12.345f;
return 1;
}
または:
-(int)getStuffOut:(SomeClass *)anObject {
if(!anObject) {
return 0;
}
anObject.myIntProperty = 12345;
anObject.myFloatProperty = 12.345f;
return 1;
}
ARC を使用している場合、プレーンな Objective-C を使用している場合、メモリ管理について心配する必要はありません。
カスタム オブジェクトは参照によって渡されるため、OBJ-C オブジェクトをメソッドに渡して、内容を埋めることができます。
または、2 つの値を保持する Struct を返すことができます
+(struct YourStruct)someMethod:(NSString *)someParam;
+(YourStruct)someMethod:(NSString)someParam {
//some method code
YourStruct st;
//Do something here with the struct
return st;
}