-1

好的,我正在学习数组以及如何像以前一样使用它们......(曾经做过很多脚本,但现在我正在尝试学习开发 ipad 和 iphone 应用程序

但我的问题是我有它,它使用 for 循环从雅虎金融中提取大量数据。

但是现在我的问题是如何只使用已提取的数组数据的一部分

这是我的例子

-(IBAction) clicked:(id)sender {

   NSString * StockOneYahooFinance = [NSString stringWithFormat:@"http://finance.yahoo.com/q/hp?s=S+Historical+Prices"];
   NSString * PulledStockOne = [NSString stringWithContentsOfURL:[NSURL URLWithString:StockOneYahooFinance] encoding:1 error:nil];

   for (i=1;i<=10;i++){

      NSString *StartPulling = [[PulledStockOne componentsSeparatedByString:@"nowrap align="] objectAtIndex:i];

      NSString *StartOpen = [[StartPulling componentsSeparatedByString:@">"] objectAtIndex:3];
      NSString *Open = [[StartOpen componentsSeparatedByString:@"<"] objectAtIndex:0];

      NSString *StartClose = [[StartPulling componentsSeparatedByString:@">"] objectAtIndex:9];
      NSString *Close = [[StartClose componentsSeparatedByString:@"<"] objectAtIndex:0];

      NSMutableArray *StockOpens = [[NSMutableArray alloc] initWithCapacity:6];
      [StockOpens addObject:Open];


      sixtyday.text = [OpenValues objectAtIndex:10];
      nintyday.text = [CloseValues objectAtIndex:10];


      if ([OpenValues objectAtIndex:10]=[OpenValues objectAtIndex:11] {
         sevenday.text = @"Plus One";
      } 
   }
}

但现在我想做类似的事情

year.text=StockOpens[5];

我怎样才能做到这一点。

4

3 回答 3

1

StockOpens 是一个数组对象,因此您需要调用一个方法来获取索引处的对象。在 NSMutableArray 上,它的 [StockOpens ObjectAtIndex:5]

year.text = [[StockOpens objectAtIndex:5]StringValue];

要执行 StockOpens[5],您需要使用 C 数组。

于 2012-07-28T16:58:25.663 回答
1

从 Xcode 4.4 (LLVM 4.0) 开始,文字可用于 Objective-C 中的 C 样式下标。

year.text = StockOpens[5];

LLVM 在这里记录了文字的使用:Objective-C Literals

注意:因为 Clang 会翻译文字用法,在这种情况下objectAtIndexedSubscript:,需要 OS X v10.8(或 iOS 6)Foundation 框架。

于 2012-07-28T17:31:36.180 回答
0

这取决于您填充的对象类型/类别StockOpens,如果它只是 NSStrings,您可以这样做

year.text = [StockOpens objectAtIndex:5];

如果它是不是字符串的其他对象,您可以调用它的描述:

year.text = [[StockOpens objectAtIndex:5] description];

P.s.:developer.apple.com 上有文档,请阅读!这个问题是如此简单(和基本),所以不能在 SO 上问它。

于 2012-07-28T17:39:48.857 回答