【问题标题】:Understanding methods syntax in Objective-C and Objective-J理解 Objective-C 和 Objective-J 中的方法语法
【发布时间】:2010-12-20 11:59:54
【问题描述】:

我有一个关于 Objective-c / Objective-j 语法的简单问题。

这是一个 dataForItemsAtIndexes 方法,它获取 CPIndextSet 和 CPString 作为参数。 它应该返回一个 CPData 对象。但是我不明白 (CPCollectionView)aCollectionView 是什么。

- (CPData)collectionView:(CPCollectionView)aCollectionView
   dataForItemsAtIndexes:(CPIndexSet)indices
                 forType:(CPString)aType

谢谢

【问题讨论】:

  • 很高兴看到有人用卡布奇诺 :)

标签: objective-c cappuccino objective-j


【解决方案1】:

这标识了您的实现数据源对应的CPCollectionView。这在您的视图或窗口有多个 CPCollectionViews 的情况下很有用,它们的数据源是同一个对象,因此它知道向哪个视图提供哪些数据。

【讨论】:

  • @BoltClock 嗯,CPData 和 CPCollectionView 都是由方法返回的吗? CPCollectionView 是 CPData 的孩子吗?如果是,他们为什么要指定 CPData ?
  • @Patrick:不,该方法只返回一个CPDataCPCollectionView 作为参数传入,因此您可以在委托方法中获取有关它的信息。所以本质上真的有三个参数:集合视图、索引集和类型字符串。
  • @BoltClock 好吧,现在说得通了。但是我对方法签名有点困惑。可以在方法名之前指定参数吗? (如果是,为什么?)这里aCollectionView是放在方法名dataForItemsAtIndexes之前的吧?
  • @Patrick:方法名实际上是由所有参数名组成的。在这种情况下,该方法称为collectionView:dataForItemsAtIndexes:forType:(注意冒号表示三个参数)。返回类型之后的单词是方法名称的开头。
  • @BoltClock 哇,所以没有方法名?我以为你需要一个方法名,至少这是我在维基百科上读到的:-(return_type)method_name:(param1_type)param1_varName
猜你喜欢
  • 1970-01-01
  • 2010-11-22
  • 2012-01-12
  • 1970-01-01
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
  • 2011-03-12
  • 2015-02-02
相关资源
最近更新 更多