0

整数を返すメソッドがあり、小さな構造体またはクラスも返したいと思っています。C++ を使用している場合は、構造体への参照をパラメーターとして渡します。ARC を使用する iOS では、__autoreleasing 属性を持つポインターへのポインターを使用することと同等であると思いますが、これは少し面倒です。

2 つの値を含む配列を返すこともできますが、必要以上に割り当ててしまい、これを大量に (100,000 呼び出し) 使用する可能性があると考えられます。

4

2 に答える 2

3

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;
}
于 2012-07-26T17:00:48.443 に答える
0

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;
}
于 2012-07-26T16:30:05.920 に答える