2011-04-25 77 views

回答

2

self.content是(我猜!)NSArray类型的属性

这行会在索引indexPath.row处返回对象(接缝为NSDictionary)。 (NSDictionary*)将对象投射到NSDictionary

+0

返回的对象是一个字典,但它为什么被铸造成字典? – JaHelia 2011-04-25 11:52:16

+0

,因为编译器不知道哪个类型存储在数组中 – cweinberger 2011-04-25 11:52:55

+0

这些行是预定义的字典,所以它知道在该数组中存储了什么数据类型! – JaHelia 2011-04-25 11:54:42

3

(NSDictionary *)类型转换。它告诉编译器假定objectAtIndex:方法返回的对象的类型为NSDictionary *,即使方法的返回类型不同。

2

这是一个,在C.

在你的情况, “self.content” 似乎是一个NSArray。所以[self.content objectAtIndex:indexPath.row]将是一个NSObject。除了这里,由于某种原因,你知道这是一个NSDictionary。所以你明确地转换它以避免编译器警告(这会告诉你“嗨,你正在为一个NSDictionary变量分配一个NSObject)

+1

'objectAtIndex:'返回'id'类型不是'NSObject *'类型 – dreamlax 2011-04-25 11:53:28

+1

噢,的确,你说得对,它应该是一个NSObject,尽管如此添加到NSArray的项目被保留并释放,因此应该是NSObjects。 – Ecco 2011-04-25 11:54:58

+0

还应该注意的是,我不认为将id分配给给定类型的变量会导致警告。 – kevboh 2011-04-25 11:57:02