ios - 从 CoreData 读取数组时共享扩展崩溃

标签 ios xcode core-data swift share

当我试图访问我的数组时,它充满了来自 CoreData 的数据。我收到 EXC_BAD_ACCESS 错误。

这是我的代码:

var endPointList: Array<SettingsModel> = []

override func viewDidLoad() {

    var context = getManagedObjectContext()

    let fetchRequest = NSFetchRequest(entityName: "SettingsEndpoint")
    endPointList = context.executeFetchRequest(fetchRequest, error: nil) as [SettingsModel]

}

当我按下触发以下 IBAction 的按钮时出现错误:

@IBAction func showEndPointAlert(){
    let alertController = UIAlertController(title: "Endpunkte Auswahl", message: "Wählen sie einen Endpunkt", preferredStyle: .Alert)


    for endPoint : SettingsModel in endPointList {
         var endPointNameFromData:String = endPoint.name as String
    }

    let cancelAction = UIAlertAction(title: "Abbrechen", style: .Cancel) { (_) in }
    alertController.addAction(cancelAction)

    self.presentViewController(alertController, animated: true, completion:nil );
}

调试器指向以下行:

var endPointNameFromData:String = endPoint.name as String

奇怪的是,如果我在它运行的 viewDidLoad() 方法中执行此代码。这是为什么?

更新:

现在由 Mundi 进行了一些编辑。我得到一个稍微不同的错误:

2015-01-06 12:18:21.818 ShareExtension[1056:20857] 
-[SettingsModel name]: unrecognized selector sent to instance 0x6080000b2fc0
2015-01-06 12:20:24.755 ShareExtension[1056:20857] 
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '
-[SettingsModel name]: unrecognized selector sent to instance 0x6080000b2fc0'

我的 SettingsModel 类:

import UIKit
import CoreData

@objc(SettingsModel)
class SettingsModel: NSManagedObject {

    @NSManaged var name:String
    @NSManaged var webservice:String
    @NSManaged var service:String

}  

最佳答案

从 Core Data 获取数据时,您通常需要将结果转换为正确的类型。仅仅声明某种类型的变量是不够的。

最好不要使用 AnyObject,而是使用适当的 NSManagedObject 子类。

endPointList = context.executeFetchRequest(fetchRequest, error: nil) as [EndPoint]
for endPoint : EndPoint in endPointList {
   println(endpoint.name)
}

关于ios - 从 CoreData 读取数组时共享扩展崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27781590/

相关文章:

ios - 核心数据对象的顺序改变,核心数据合并后上下文之间不同

ios - 转换 CIImage 时设置插值算法/质量

ios - 在 UITableView 中显示文档目录中的文件 - 最低 iOS5

objective-c - 在 uitableview 单元格中标记和取消标记框

ios - xcode 设备支持 11.3 15E5216a

ios - 如何在Core Data中保存键值对?

ios - 核心数据实体在启动之间不保存

ios - 用新的 UIView 替换 self.view 显示黑色 View

ios - 在用户更改之前无法从设置包中读取默认值

iphone - 如何复制我的 xcode 项目? (iPhone 开发工具包)