gpt4 book ai didi

python - objective-c 中是否存在类似 Python 生成器的东西?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:39 25 4
gpt4 key购买 nike

做类似 Python generator 的事情存在于 objective-c 中?

我在几个地方有以下代码,那么有什么方法可以简化它吗?

int maxWinInRow = [self maxWinInRow];

// how many wins in row
for (int i=1; i <= maxWinInRow; i++) {

NSString * key = [NSString stringWithFormat:@"%d",i];
NSNumber * value = [_winsInRow valueForKey:key ];
int numbeOfWinInRow = value.intValue;


// only this line is specific
gameScore = gameScore + ( pow(6,i) * numbeOfWinInRow);
}

最佳答案

具体来说,在 Objective C 编程语言中并没有内置这样的生成器模式。然而,随着在 Objective C(以及带有 LLVM 的 C)中引入“ block ”,在某种程度上可以在 Objective C 中构建您自己的生成器模式。

如果你认真学习这个,你可以通过this article迈克·阿什 (Mike Ash)。

但是,在使用 block 时请小心,因为它偶尔会产生额外的内存管理开销,否则可能会导致您的应用程序出现潜在的内存泄漏。所以如果你想使用描述的模式,请确保你对“ block ”有正确的理解。否则,我总是会建议您重构您的代码以构建一个基本方法,该方法可以像 Wain 所描述的那样作为您的 stub 。当然,这不允许模式暗示的惰性初始化。但是,在 Objective C 中它总比没有解决方案好。

关于python - objective-c 中是否存在类似 Python 生成器的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22837328/

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