0

我有一个返回整数的方法,现在我还想返回一个小结构或类。如果我使用 C++,我会将结构的引用作为参数传递。在使用 ARC 的 iOS 中,我认为等效的是使用指向具有 __autoreleasing 属性的指针的指针,我觉得这有点麻烦。

我可以返回一个包含这两个值的数组,但我认为我会分配超过必要的值,我可能会经常使用它(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 对象传递给您的方法并填写您的内容。

或者您可以返回一个包含两个值的 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 回答