我有这段代码,我希望消息符号相当于:
cell.textLabel.text = self.dataArray[indexPath.row];
我能做的最好的事情是:
[[cell textLabel] setText: [ what goes here? ]];
答案 0 :(得分:3)
完全展开的版本是:
[[cell textLabel] setText:[[self dataArray] objectAtIndex:[indexPath row]]];
但是,这与您最初发布的内容完全没有区别。它们与编译器完全相同。
这里使用的两种语法是:
适用于-foo
或-setFoo:
方法:
cell.textLabel -> [cell textLabel]
cell.textLabel.text = ... [[cell textLabel] setText:...]
这适用于-objectAtIndex:
和-setObject:atIndex:
方法(如果它是NSArray
),以及objectForKey:
和-setObject:forKey:
方法(如果它是NSDictionary
}):
dataArray[indexPath.row] -> [dataArray objectAtIndex:indexPath.row]
调用的实际方法是objectAtIndexedSubscript:
...,但它们类似于更常见的objectAtIndex:
方法。有关此语法的详细信息,请check out the Clang documentation。
答案 1 :(得分:1)
[[cell textLabel] setText: [self dataArray][indexPath row]];
或:
[[cell textLabel] setText: [_dataArray[indexPath row]];
我假设self.dataArray的ivar是_dataArray(默认);
或者你可以致电
[[cell textLabel] setText: [[self dataArray] objectAtIndex:[indexPath row]]];