在之前的swift中,我能够使用这样的代码将新数据添加到我的" TestEntity"在我的数据模型中。
interface
是为我的" TestEntity"而创建的。我能够用" dot"设置它的属性。语法
最后,我会保存上下文
NSManagedObject
此代码在Swift3中不起作用。当我运行它时,我得到以下运行时错误:
无法转换类型的值#NSCEagedObject_TestEntity _' (0x175306b0)到' testCoreData.TestEntity' (0xd6bb8)。 2016年6月19日 11:07:52.305195 testCoreData [689:264453]无法转换类型的值 ' NSManagedObject_TestEntity _' (0x175306b0)到 ' testCoreData.TestEntity' (0xd6bb8)
有人可以说明如何在swift3中完成这项工作吗?任何帮助都非常感谢。 谢谢。
问题的第二部分是如何再次访问数据。以下代码以错误结束:致命错误:let entity=NSEntityDescription.insertNewObject(forEntityName: "TestEntity", into: context) as! TestEntity
entity.testAttribute="test value"
context.save()
元素未能与Swift数组元素类型匹配
NSArray
答案 0 :(得分:4)
如果有NSManagedObject
子类TestEntity
,则新语法为
let entity = TestEntity(context: context)
entity.testAttribute="test value"
答案 1 :(得分:3)
public class AnimationTimerExample {
public void setUpButton(Button btn, Circle circle) {
AnimationTimer timer = new AnimationTimer() {
private final long delay = 10_000_000L; // This must be in
// nanoseconds
// since "now" is in
// nanoseconds
private long lastExecution;
@Override
public void handle(long now) {
if (now - (lastExecution + delay) <= 0L {
// Move circle
lastExecution = now;
}
}
};
btn.addEventHandler(MouseEvent.MOUSE_PRESSED, me -> timer.start());
btn.addEventHandler(MouseEvent.MOUSE_RELEASED, me -> timer.stop());
}
}
答案 2 :(得分:1)
工作示例:
@
数据模型检查器TestEntity类名称需要设置为TestEntity。以前的奇怪行为似乎是由于这个值是空白的。
答案 3 :(得分:0)
我不是核心数据专家,但是API提供了3种不同的创建try:
x = 0
while x < 50000000:
x += 1
print(x)
except KeyboardInterrupt:
pass
print("Calculation done")
实例的方式。我不知道它们中的任何一个是否提供任何其他好处。
假设您有一个名为^C
的实体/ NSManagedObject子类,则以下所有内容都是相同的:
新方法(无需强制转换)NSManagedObject
:
TestEntity
较旧的方式(如果可以使用+iOS10
,则无需广播。通过强制转换,您可以使用点符号。let test = TestEntity(context: context)
test.attribute1 = "a value"
setValue
或:
+iOS3
一旦创建NSManagedObject实例并分配其属性,然后将其保存在上下文中即可。
let testEntity = NSEntityDescription.entity(forEntityName: "TestEntity", in: context)
let test1 = NSManagedObject(entity: testEntity!, insertInto: context)
test1.setValue("a value", forKey: "attribute1")
let test2 = NSManagedObject(entity: testEntity!, insertInto: context) as! TestEntity
test2.attribute1 = "a value"