- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是核心数据的新手,虽然它正在慢慢变得有意义,但当我保留“可选”时,我在加载初始数据库时遇到了问题>没有值的关系值(这不是选项的作用吗?)。下面的代码可以工作,但如果我省略了一些实例化和定义关系的情况(具体细节如下),则不行。
我正在使用一个类通过 for 循环加载数据,该循环分配初始化值并将它们传递给有效加载数据的方法。首先,加载一个名为 Gender 的实体。
class LoadData
{
init ()
{
for count in 0...3
{
var text = "Value not found"
let sortOrder: Int32 = Int32(count)
switch count
{
case 0:
text = "Masculine"
case 1:
text = "Neutral"
case 2:
text = "Feminine"
case 3:
text = "Plural"
default:
text = "Value unassigned"
}
loadGender(text: text, sortOrder: sortOrder)
}
在同一个类和 init 中,一个单独的 for 循环定义值并传递以将上下文保存在Entity、CellData中。对于案例 0 到 27 和 28 到 51 中定义的 CellData 条目,我使用谓词来实例化特定的性别条目...
for count in 0...51
{
var text = "Cell text not found"
...
var dataToGender: Gender? = nil
switch count
{
case 0...27: // HERE - if case 1...27, data will NOT load
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate
else { return }
let moc = appDelegate.persistentContainer.viewContext
let request = NSFetchRequest<Gender>(entityName: "Gender")
let genderToFetch = "Masculine"
request.predicate = NSPredicate(format: "text == %@", genderToFetch)
do
{
let fetched = try moc.fetch(request)
dataToGender = fetched[0] as Gender
} catch
{ fatalError("Failed to fetch employees: \(error)") }
case 28...51:
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate
else { return } // get the app delegate
let moc = appDelegate.persistentContainer.viewContext
let request = NSFetchRequest<Gender>(entityName: "Gender")
let genderToFetch = "Feminine"
request.predicate = NSPredicate(format: "text == %@", genderToFetch)
do
{
let fetched = try moc.fetch(request)
dataToGender = fetched[0] as Gender
} catch
{ fatalError("Failed to fetch employees: \(error)") }
default: return
}
...
...它被传递到方法中以将数据放入上下文中并保存到 Core Data。
func loadCellData(text: String, sortOrder: Int32, portion: Float, color1: String?, color2: String?, color3: String?, colorRangeLoc1: Int32?, colorRangeLoc2: Int32?, colorRangeLoc3: Int32?, colorRangeLen1: Int32?, colorRangeLen2: Int32?, colorRangeLen3: Int32?, underlineRangeLoc1: Int32?, underlineRangeLoc2: Int32?, underlineRangeLoc3: Int32?, underlineRangeLen1: Int32?, underlineRangeLen2: Int32?, underlineRangeLen3: Int32?, dataToGender: NSObject?)
{
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let entry: CellData = NSEntityDescription.insertNewObject(forEntityName: "CellData", into: context) as! CellData
...
entry.text = text
...
entry.dataToGender = dataToGender as? Gender
do { try context.save() ; print("saved")}
catch let error as NSError
{ print("Could not save. \(error), \(error.userInfo)") }
}
令人惊讶的是,这工作得很好 - 但前提是我为所有 CellData 条目定义了关系。但是,我不希望所有条目都具有关系(请参阅评论//此处)。情况 0...7 不应该有关系,但如果没有分配值,代码将正常执行 - 直到调用 DB 值。经检查,Gender 输入正常,但没有将 CellData 条目输入到数据库中,因此它崩溃,在索引 0 第 0 部分找不到对象。
日志中没有错误;我可以在 loadCellData 中打印!?!这是怎么回事?!?
最佳答案
基本上,CoreData 中的可选值与 Swift 可选值不同。整数永远不应该是可选的,也许关系也是可选的。为了解决这个问题,至少对于整数来说,应该分配一个不可能的值而不是 nil,并用于检查是否分配了值。
虽然我知道这很昂贵,但我没有找到一种方法来将关系分配给 CoreData 中的现有记录,而无需单独获取记录。
关于ios - 如果没有可选关系属性的值,核心数据无法加载?!?迅速,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56629024/
UI很难使用后台线程中的数据进行UI更新。我阅读了大量文档,但仍然缺少某些内容... func getData(){ DispatchQueue.global(qos: .background
我的应用程序中有一个.plist,可以保存重要数据。它分为以下层次结构: 列表项 根-字典 设置-字典 Setting1-数组 Setting2-数组 如何将数据写入3.1和3.2阵列?我只是将数据添
我必须为我的应用程序实现社交登录,例如facebook和google+。并且还需要使用Twitter实施社交登录。我想知道的是,是否可以使用swift 3为我的应用(如twitter和facebook
我是核心数据的新手,虽然它正在慢慢变得有意义,但当我保留“可选”时,我在加载初始数据库时遇到了问题>没有值的关系值(这不是选项的作用吗?)。下面的代码可以工作,但如果我省略了一些实例化和定义关系的情况
我在屏幕上有两个自定义 UIView。 UIViewOne 占屏幕的 75%,UIViewTwo 占 25%。我需要点击 UIViewTwo,调整它的大小,让第二个变大,先变小。我也知道这需要使用约束
假设我有一个游戏,一开始用户可以选择一些东西,比如名字、性别等,这会影响游戏的很多方面,比如用于渲染用户的 Sprite 和文本即显示。 所以每次我离开游戏的一个区域并进入一个新的区域时,我都应该根据
现在在我的应用中,用户可以发布图片,它会保存用户的当前位置和图片。在 TableView 中,我希望它查询距离用户区域 5-10 公里的图像。用户还将他们的地理位置保存在他们的个人资料中。 我知道有这
我一直在尝试找出如何获取用户数据数组并将其与其他用户数组列表进行比较以查看它是否与它们匹配。我看过答案 here这表明我应该构建我的数据,使其非规范化并因此具有重复项。这种方法有效,但我现在正在努力将
我有一个表格 View ,每个单元格中有一个按钮。当它被点击时,我有一个 didselectrow 功能。我想使用我的索引路径从给出单元格内容的数组中获取一个值。如何将此 NSIndexpath 转换
很多时候,当我运行项目时,模拟器窗口弹出的很小,周围没有 iphone。只是一个无法调整大小的小矩形。有人知道为什么会这样吗?看看下面的图片,看看它是什么样子。注意:它只是屏幕一部分的屏幕截图,因此它
当我在 iPad 上使用多任务测试我的应用程序并更改应用程序上的应用程序大小时, Collection View 单元格需要调整大小,否则它们将不适合 View 窗口。 我已经采取了一些措施比如 改变
你们知道如何设置 NSTextField 只接受数字(int)吗? 让我解释一下。我得到了我的 NSTextField: @IBOutlet weak var txtBoxField: NSText
let fontRef = CTFontCreateWithName("ArialMT", config.fontSize, nil); [kCTFontAttributeName : fontRef
有没有办法在 uialertview 中给一些特定的单词上色?我的意思是,我可以将 RED 标记为红色,同时将 GREEN 标记为绿色吗? 有人能带我走正确的路吗? 最佳答案 您可以使用 NSAttr
我使用地址簿框架导入数据并将联系人存储在核心数据中。该方法包含在 GCD 中,但 UI 没有响应,并且所有代码都在线程 1 上执行。我的代码有什么问题? func importContacts(){
我试图找到用户位置的纬度和经度,以便我可以在 viewdidload 中将 map 以用户为中心。 我已经实现了看似正确的代码,但 userLat(纬度)和 userLon(经度)的值有很大偏差。 注
我是一名优秀的程序员,十分优秀!