Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 是否使用关系类在coredata中保存数据?_Ios_Swift_Core Data - Fatal编程技术网

Ios 是否使用关系类在coredata中保存数据?

Ios 是否使用关系类在coredata中保存数据?,ios,swift,core-data,Ios,Swift,Core Data,我有一个类Place&另一个类为Address。现在一个地方只有一个地址,因此我必须创建到一个关系。现在,当我尝试保存这个地方时,我无法执行此操作。下面是我为此功能编写的代码 if #available(iOS 10, *) { placeInfo = NSEntityDescription.insertNewObject(forEntityName: "PlaceInfo", into: appDelegate.persistentContainer.viewCont

我有一个类
Place
&另一个类为
Address
。现在一个地方只有一个地址,因此我必须创建到一个关系。现在,当我尝试保存这个地方时,我无法执行此操作。下面是我为此功能编写的代码

if #available(iOS 10, *) {
            placeInfo =  NSEntityDescription.insertNewObject(forEntityName: "PlaceInfo", into: appDelegate.persistentContainer.viewContext) as? PlaceInfo
        } else {
            placeInfo = NSEntityDescription.insertNewObject(forEntityName: "PlaceInfo", into: appDelegate.managedObjectContext!) as? PlaceInfo
        }
            var cordinates:[String] = []
            placeInfo?.title = Place.shared.title ?? ""
            placeInfo?.desc = Place.shared.desc ?? ""
            placeInfo?.id = "Place_" + String(Utility.shared.currentTimeStamp())
             let spotLocation  = Place.shared.address

            if let lat = spotLocation?.lat, let long  = spotLocation?.long {
                cordinates = [lat.toString(),long.toString()]
            }
            let address  = NSEntityDescription.insertNewObject(forEntityName: "PlaceAddress", into: appDelegate.managedObjectContext!) as? PlaceAddress
            address?.street =  "Street"
            address?.landmark  = "LANDMARK"
            address?.city = "MYCITY"
            address?.state =   "SATTE"
            address?.state =  "INDIA"
            address?.pincode  =  "1256325"

            placeInfo?.isuploaded = true
            if let spotid = placeInfo?.id {
               // saveMediaToDB(id: spotid)
            }
            placeInfo?.address_rel = address
Placeinfo类

import Foundation
import CoreData


extension PlaceInfo {

    @nonobjc public class func fetchRequest() -> NSFetchRequest<PlaceInfo> {
        return NSFetchRequest<PlaceInfo>(entityName: "PlaceInfo")
    }

    @NSManaged public var desc: String?
    @NSManaged public var hasmedia: Bool
    @NSManaged public var id: String?
    @NSManaged public var isuploaded: Bool
    @NSManaged public var title: String?
    @NSManaged public var address_rel: PlaceAddress?
    @NSManaged public var files_rel: NSSet?

}

// MARK: Generated accessors for files_rel
extension PlaceInfo {

    @objc(addFiles_relObject:)
    @NSManaged public func addToFiles_rel(_ value: FilesInfo)

    @objc(removeFiles_relObject:)
    @NSManaged public func removeFromFiles_rel(_ value: FilesInfo)

    @objc(addFiles_rel:)
    @NSManaged public func addToFiles_rel(_ values: NSSet)

    @objc(removeFiles_rel:)
    @NSManaged public func removeFromFiles_rel(_ values: NSSet)

}
<代码>导入基础 导入CoreData 分机位置信息{ @nonobjc公共类func fetchRequest()->NSFetchRequest{ 返回NSFetchRequest(entityName:“PlaceInfo”) } @NSManaged public var desc:字符串? @NSV管理的公共媒体:Bool @NSManaged公共变量id:String? @NSManaged公共变量已上载:Bool @NSManaged公共变量标题:字符串? @NSManaged公共变量地址\u rel:PlaceAddress? @NSManaged公共var文件\u rel:NSSet? } //标记:为文件生成的访问器\u rel 分机位置信息{ @objc(addFiles\u relObject:) @NSManaged public func addToFiles\u rel(\u值:FilesInfo) @objc(removeFiles_relObject:) @NSManaged public func removeFromFiles\u rel(\u值:FilesInfo) @objc(addFiles\u rel:) @NSManaged public func addToFiles\u rel(\u值:NSSet) @objc(删除文件) @NSManaged public func removeFromFiles\u rel(\u值:NSSet) }
您是否添加了下面的代码行

do {
    try managedObjectContext.save()
} catch {
    fatalError("Failure to save context: \(error)")
}

为什么您选择向下播放
as?PlaceInfo
作为?地点地址
?这些类肯定是在编译时存在的。强制向下广播不得失败,否则会显示开发人员/设计错误。然后你去掉所有难看的问号。如果可用(iOS 10,*)也应该对
PlaceAddress
初始值设定项进行条件编译。