我需要声明下面的三个股票期权并初始化一次。我有一些伪代码来实现它,但我不确定如何使它工作。
这是在iOS应用的.m
文件中声明的,.h
文件中没有任何内容。
伪代码如下:
// _msftStockPrice _googStockPrice _applStockPrice need to be class level
if(_msftStrockPrice == nil)
googStockPrice = [[[CPDStockPriceStore sharedInstance] monthlyPrices:CPDTickerSymbolMSFT]
if(_appleStrockPrice == nil)
_msftStockPrice = [[[CPDStockPriceStore sharedInstance] monthlyPrices:CPDTickerSymbolMSFT]
if(_msftStrockPrice == nil)
msftStockPrice = [[[CPDStockPriceStore sharedInstance] monthlyPrices:CPDTickerSymbolMSFT]
if ([plot.identifier isEqual:CPDTickerSymbolAAPL] == YES) {
return [_appleStockPrice objectAtIndex:index];
} else if ([plot.identifier isEqual:CPDTickerSymbolGOOG] == YES) {
return [[_googStockPrice objectAtIndex:index];
} else if ([plot.identifier isEqual:CPDTickerSymbolMSFT] == YES) {
return [_msftStockPrice objectAtIndex:index];
}
答案 0 :(得分:0)
不要将变量声明为属性或实例变量,而是将其声明为静态变量。在.m文件的顶部范围内,或者如果上面的方法是访问这些变量的唯一位置,就在该方法内部。像这样:
static NSArray *anArray=nil;
静态变量将对您的类的所有实例可见。显然,根据您的设计(线程),您需要防止因并发访问而导致的问题。