我有一个返回整数的方法,我现在也想返回一个小结构或类。如果我使用C ++,我会将结构作为参数传递给结构。在使用ARC的iOS中,我认为等效的是使用指向具有__autoreleasing属性的指针,我觉得这有点麻烦。
我可以返回一个包含这两个值的数组,但后来认为我会分配超过必要的数量,而且我可以使用它(100,000次调用)。
答案 0 :(得分:3)
即使使用ARC,您也可以通过引用或对象指针传递结构...
通过ref传递结构,就像在C ++中一样,例如&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;
}
答案 1 :(得分: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;
}