![](/img/trans.png)
[英]Continuous numbers in Objective-C array like range() in Python
[英]Does something like Python generator exist in objective-c?
Objective-c 中是否存在像Python 生成器這樣的東西?
我在幾個地方有以下代碼,那么有什么方法可以簡化它嗎?
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)中引入“塊”,在 Objective C 中構建自己的生成器模式變得有些可能。
如果您想認真學習,可以閱讀 Mike Ash 的這篇文章。
但是,在使用塊時請小心,因為它偶爾會導致額外的內存管理開銷,否則可能會導致您的應用程序中潛在的內存泄漏。 因此,如果您想使用所描述的模式,請確保您對“塊”有正確的理解。 否則,我總是建議您重構代碼以構建一個基本方法,該方法將作為 Wain 所述的存根工作。 當然,這不會允許模式所暗示的延遲初始化。 然而,在 Objective C 中,這是一個總比沒有好的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.