【问题标题】:Objective-C get object itemObjective-C 获取对象项
【发布时间】:2015-05-18 21:28:56
【问题描述】:

我在索引处获取我的对象,如下所示:

NSLog(@"%@", [[dataSource cellHolder] objectAtIndex:69]);

现在cellHolder 在索引 69 处有一个名为“Task”的项目,我想获取“Task”的值。

我该怎么做?

例如:cellHolder[69]["Task"] == "Task 69";

试图获取“Task 69”文本。

【问题讨论】:

  • Task 是什么类?是NSDictionary,还是完全其他的?我们需要更多关于您的代码在此处如何工作的信息。
  • [cellHolder[69] Task] ?
  • cellHolder 是一个 NSMutableArray
  • 这不是被问到的。 WHAT 数组???

标签: objective-c cocoa nsarray


【解决方案1】:

要获取索引 69 处的对象,您只需这样做:

cellHolder[69]

所以如果你想把它赋值给一个名为item的变量,例如:

item = cellHolder[69];

不清楚你的意思是什么里面有一个叫做“任务”的项目。如果您的意思是该项目先前由名为Task 的变量指向?如果是这样,则该名称与存储在数组中的对象没有任何关系。

另一方面,如果您的意思是cellHolder 的索引69 处的对象有一个名为Task 的属性,那么您可以获得该对象的该属性的值,如下所示。为了论证起见,我假设值的类型是字符串:

NSString *taskValue = [cellHolder[69] Task];

如果对象是一个字典并且该字典中的一个键是@"Task",那么你可以说:

NSString *taskValue = cellHolder[69][@"Task"];

【讨论】:

  • 另外,我想补充一点,括号表示法(即cellHolder[69])等同于[cellHolder objectAtIndex:69];
  • @user979331 是的,如果 cellHolder 是任何类型的 NSArray(包括 NSMutableArray),则任何一种语法(cellHolder[69][cellHolder objectAtIndex:69])都可以。但是您还没有告诉我们您存储在数组中的对象是什么种类,所以很难告诉您如何访问您似乎想要的东西(尽管我给出了几个常见的答案情况)。如果您需要帮助,您确实需要提供有助于我们帮助您的信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-19
  • 2014-01-16
  • 1970-01-01
  • 2016-02-05
  • 1970-01-01
相关资源
最近更新 更多