gpt4 book ai didi

iphone - 通过引用传递整数

转载 作者:太空狗 更新时间:2023-10-30 03:30:36 24 4
gpt4 key购买 nike

我在我的头文件中定义了一个类级别的 int。在 .m 文件中,我有一个方法,我想采用一个 int 参数,修改它并将修改后的值反射(reflect)在调用者处。例如:

classLevelInt = 2;
[self someMethod:classLevelInt];

//Here, I'd like classLevelInt to equal the value assigned to it in the method

在-someMethod:

- (void)someMethod:(int)anInt{
//do some stuff
if(somecondition){
anInt = 2 + 3; //some operation
}
}

我尝试过使用

  • NS编号
  • 指针的指针 (**)
  • 在方法内部将 int 转换为 NSNumber,从而产生新的地址空间

但永远不会看到在该方法外部反射(reflect)的 classLevelInt 方法内部设置的值。如果不从 -someMethod 返回新的 int 值,我怎样才能让 classLevelInt 的值保留在方法之外?或者,如果这根本不是一个好方法,那么什么是更好的方法?

最佳答案

您可以将指针作为 int* 传递给 classLevelInt

classLevelInt = 2;
[self someMethod:&classLevelInt];

- (void)someMethod:(int*)anInt {
//do some stuff
if(somecondition){
*anInt = 2 + 3; //some operation
}
}

第二种方式,可以直接改变同一个类中的classLevelInt

- (void)someMethod {
//do some stuff
if(somecondition){
classLevelInt = 2 + 3; //some operation
}
}

关于iphone - 通过引用传递整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1987594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com