【问题标题】:Crashing During Iteration Of NSArray With Swift On iOS在 iOS 上使用 Swift 迭代 NSArray 时崩溃
【发布时间】:2014-06-30 23:44:19
【问题描述】:

我不太确定为什么这不起作用,但我有一个填充了各种数据的数组。我已经使用这个测试了数组中的行数:

println("Total Count: " + "\(testArray.count)")

这将返回 29 个项目。我还通过查看以下输出来验证每个键/值对都已填充:

for result : AnyObject in testArray
{
    println(\"(result)")
}

但是,当我尝试让它打印任何给定值的输出时,只有第一个打印并且应用程序在第二个循环中崩溃。我在控制台中没有收到错误消息,但我收到了消息:

“线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)”

在代码中。这是完整的代码块:

for result : AnyObject in testArray
{
    var testVariable = result.valueForKey("testColumn") as NSObject
    println(testVariable)
}

应用程序在“var testVariable”行的第二个循环中崩溃。我做错了什么?

这是我数组中前两行数据的控制台输出:

<NSManagedObject: 0xd16e940> (entity: Shows; id: 0xd16fb40 <x-coredata://2DADFB50-FB10-4345-9252-1AFFF3598BBD/Shows/p22> ; data: {
   showId = 2492;
   showImageFilePath = "/Users/Andy/Library/Developer/CoreSimulator/Devices/2944D5A5-1D0A-4C23-BA74-54FEA1C2BB2E/data/Containers/Data/Application/8F6B6E36-87EA-45F8-94A7-F3E5278B8604/Documents\\ShowImages\\2492-All Shook Up.jp";
   showIsCurrent = 1;
   showIsWatched = 0;
   showName = "All Shook Up";
   showUrl = "http://lv.houseseats.com/member/tickets/view/?showid=2492";
})

<NSManagedObject: 0xd16ecf0> (entity: Shows; id: 0xd16fb50 <x-coredata://2DADFB50-FB10-4345-9252-1AFFF3598BBD/Shows/p50> ; data: <fault>)

<NSManagedObject: 0xd16eec0> (entity: Shows; id: 0xd16fb60 <x-coredata://2DADFB50-FB10-4345-9252-1AFFF3598BBD/Shows/p24> ; data: {
   showId = 2719;
   showImageFilePath = "/Users/Andy/Library/Developer/CoreSimulator/Devices/2944D5A5-1D0A-4C23-BA74-54FEA1C2BB2E/data/Containers/Data/Application/8F6B6E36-87EA-45F8-94A7-F3E5278B8604/Documents\\ShowImages\\2719-Bonkerz Comedy ";
   showIsCurrent = 1;
   showIsWatched = 0;
   showName = "Bonkerz Comedy Club Presents: Rio Hillman";
   showUrl = "http://lv.houseseats.com/member/tickets/view/?showid=2719";
})

另外,这是我第一次尝试为 iOS 编写代码以及在 Stack Overflow 上发帖,所以请多多包涵。谢谢。

【问题讨论】:

  • 可以显示数组的内容吗?
  • 当然。我更新了我原来的帖子。实际上,在第二个 NSManagedObject 上,它列出了 而不是任何值。这到底是什么意思?是否有用于 Xcode 的 SQLite 查看器,以便我可以轻松地可视化数据库中的所有数据?该数组来自使用 CoreData 使用存储数据。
  • 请花时间正确格式化您的问题(尤其是代码)。

标签: ios xcode swift


【解决方案1】:

从日志输出看来,您使用的是NSManagedObject。为什么使用AnyObject?可能是看不懂valueForKey。尝试将您的数组元素按原样转换,NSManagedObjects。

此外,如果属性是字符串,则将其转换为字符串,而不是其他内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多