【发布时间】:2017-05-03 13:07:10
【问题描述】:
'NSRangeException',原因:'*** -[__NSArrayM objectAtIndex:]:索引 43 超出范围 [0 .. 39]'
在下面的代码中,为什么总是执行 else 块,而在 CellForRowAtIndexPath 中使用相同的代码却可以正常工作?
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if let tableItem = dataArray[indexPath.row] as? GADNativeExpressAdView {
valueToPass = indexPath.row
self.performSegueWithIdentifier("showDetails", sender: self)
} else {
valueToPass = indexPath.row
self.performSegueWithIdentifier("showDetails", sender: self)
}
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if let nativeExpressAdView = dataArray[indexPath.row] as? GADNativeExpressAdView {
let reusableAdCell = tableView.dequeueReusableCellWithIdentifier("NativeExpressAdViewCell", forIndexPath: indexPath)
// Remove previous GADNativeExpressAdView from the content view before adding a new one.
for subview in reusableAdCell.contentView.subviews {
subview.removeFromSuperview()
}
reusableAdCell.contentView.addSubview(nativeExpressAdView)
// Center GADNativeExpressAdView in the table cell's content view.
nativeExpressAdView.center = reusableAdCell.contentView.center
return reusableAdCell
}
else {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as? ProductCell
dataDict = dataArray[indexPath.row] as! NSMutableDictionary
cell!.productName?.text = dataDict.objectForKey("name") as? String
let member : NSString
member = (dataDict.objectForKey("Member") as? String)!
cell!.productMemberName?.text = "Member: " + (member as String)
cell!.productFavorite?.setBackgroundImage(UIImage(named: ""), forState: UIControlState.Normal)
cell!.productImage?.image = UIImage(named: (dataDict.objectForKey("name") as? String)! + ".jpg")
let imageName = "cellArrow"
let image = UIImage(named: imageName)
let imageView = UIImageView(image: image!)
cell?.accessoryView = imageView
return cell!
}
}
知道我应该在didSelectRowAtIndexPath() 中更改什么吗?
【问题讨论】:
-
你能提供更多代码吗? tableView:cellForIndexPath: 和 tableView:numberOfRowInSection: 函数。
-
检查更新的问题
标签: ios swift didselectrowatindexpath google-admob