gpt4 book ai didi

ios - ivars 和循环方法

转载 作者:行者123 更新时间:2023-11-29 03:09:04 27 4
gpt4 key购买 nike

我必须调用一个重复出现的方法,或者换句话说,该方法将调用自身。

同时我必须有一个方法将使用的控制变量。

首先,我会想到声明一个类似 controlIndex 的 ivar,然后在方法中使用它,如下所示:

// declared on .h
NSUInteger controlIndex;

// later on the program...
controlIndex = 100;
[self doItBaby];


...


- (void)doItBaby {

NSArray *subNodes = [node children];
if ([subNodes count] == 0) return;

for (id oneNode in subNodes) {
if ([oneNode isABomb]) {
[oneNode markNodeWithIndex:controlIndex];
controlIndex ++;
}
[self doItBaby];
}
}

此代码可以完成工作,但我使用的是在主类 header 上声明的这个 ivar。

我想知道是否有一种方法可以自包含 controlIndex 变量,而不是在类 header 上使用它。

最佳答案

重构您的方法以接受参数。

- (void)doItBaby:(NSUInteger)controlIndex {
NSArray *subNodes = [node children];

if ([subNodes count] == 0) return;

for (id oneNode in subNodes) {
if ([oneNode isABomb]) {
[oneNode markNodeWithIndex:controlIndex];
controlIndex ++;
}
[self doItBaby:controlIndex];
}
}

您仍然需要向它发送一个初始值并在每次递归调用时重新发送 controlIndex 变量,但您的初始值不必是对整个类可见的实例变量。

[self doItBaby:100];

关于ios - ivars 和循环方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22423822/

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