【发布时间】:2014-08-30 09:49:11
【问题描述】:
发生了一些奇怪的事情。
我的 TableDataArray 中有这个:
(
{
count = 0;
title = Open;
},
{
count = 20;
title = Closed;
},
{
count = 0;
title = Pending;
},
{
count = 10;
title = Queue;
}
)
当我这样做时:
var rowData: NSDictionary = TableDataArray[indexPath.row] as NSDictionary
var maintext: String? = rowData["title"] as NSString
println(maintext)
if (maintext != nil ){
cell.textLabel.text = maintext
}
它有效,我在表格中看到了标题。
但只要我添加这些行:
var detailtext: String? = rowData["count"] as NSString ## tried also as Int, NSInteger, similar fate
println(detailtext)
if (detailtext != nil) {
cell.detailTextLabel.text = detailtext
}
应用程序因“Swift dynamic cast failed”而崩溃,我无法弄清楚原因。
另一个是如果我进行另一个 API 调用,结果是相似的,但不是崩溃,它只是显示......文本和详细文本。
但在另一个 api 调用中,它崩溃了,但出现“致命错误:在展开可选值时意外发现 nil”......而在另一个调用中,它只是说 String 不可转换到 Uint8...
这让我很烦。相同的 API 调用,相似的结果,但它可以合二为一,并且崩溃并导致不同的结果...
所以问题是,我如何检测和解决此类问题,然后显示 detailText... 因为值在那里。
谢谢。
【问题讨论】:
-
rowData["count"] 是否持有 NSNumber?
-
如何声明 TableDataArray。
标签: ios uitableview swift