我有一个返回整数的方法,现在我还想返回一个小结构或类。如果我使用 C++,我会将结构的引用作为参数传递。在使用 ARC 的 iOS 中,我认为等效的是使用指向具有 __autoreleasing 属性的指针的指针,我觉得这有点麻烦。
我可以返回一个包含这两个值的数组,但我认为我会分配超过必要的值,我可能会经常使用它(100,000 次调用)。
我有一个返回整数的方法,现在我还想返回一个小结构或类。如果我使用 C++,我会将结构的引用作为参数传递。在使用 ARC 的 iOS 中,我认为等效的是使用指向具有 __autoreleasing 属性的指针的指针,我觉得这有点麻烦。
我可以返回一个包含这两个值的数组,但我认为我会分配超过必要的值,我可能会经常使用它(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 对象传递给您的方法并填写您的内容。
或者您可以返回一个包含两个值的 Struct
+(struct YourStruct)someMethod:(NSString *)someParam;
+(YourStruct)someMethod:(NSString)someParam {
//some method code
YourStruct st;
//Do something here with the struct
return st;
}