NSEntityDescription是零

时间:2016-07-12 21:26:59

标签: ios swift core-data swift3

我的变量clang++ -c -std=c++11 -Xclang -fdump-record-layouts test.cpp // Output: *** Dumping AST Record Layout 0 | class Test_1 0 | int64_t first 5 | int64_t second | [sizeof=8, dsize=8, align=8 | nvsize=8, nvalign=8] *** Dumping IRgen Record Layout Record: CXXRecordDecl 0x344dfa8 <source_file.cpp:3:1, line:6:1> line:3:7 referenced class Test_1 definition |-CXXRecordDecl 0x344e0c0 <col:1, col:7> col:7 implicit class Test_1 |-FieldDecl 0x344e1a0 <line:4:2, col:19> col:10 first 'int64_t':'long' | `-IntegerLiteral 0x344e170 <col:19> 'int' 40 |-FieldDecl 0x344e218 <line:5:2, col:19> col:10 second 'int64_t':'long' | `-IntegerLiteral 0x344e1e8 <col:19> 'int' 24 |-CXXConstructorDecl 0x3490d88 <line:3:7> col:7 implicit used Test_1 'void (void) noexcept' inline | `-CompoundStmt 0x34912b0 <col:7> |-CXXConstructorDecl 0x3490ee8 <col:7> col:7 implicit constexpr Test_1 'void (const class Test_1 &)' inline noexcept-unevaluated 0x3490ee8 | `-ParmVarDecl 0x3491030 <col:7> col:7 'const class Test_1 &' `-CXXConstructorDecl 0x34910c8 <col:7> col:7 implicit constexpr Test_1 'void (class Test_1 &&)' inline noexcept-unevaluated 0x34910c8 `-ParmVarDecl 0x3491210 <col:7> col:7 'class Test_1 &&' Layout: <CGRecordLayout LLVMType:%class.Test_1 = type { i64 } NonVirtualBaseLLVMType:%class.Test_1 = type { i64 } IsZeroInitializable:1 BitFields:[ <CGBitFieldInfo Offset:0 Size:40 IsSigned:1 StorageSize:64 StorageOffset:0> <CGBitFieldInfo Offset:40 Size:24 IsSigned:1 StorageSize:64 StorageOffset:0> ]> *** Dumping AST Record Layout 0 | class Test_2 0 | int64_t first 5 | int32_t second | [sizeof=8, dsize=8, align=8 | nvsize=8, nvalign=8] *** Dumping IRgen Record Layout Record: CXXRecordDecl 0x344e260 <source_file.cpp:8:1, line:11:1> line:8:7 referenced class Test_2 definition |-CXXRecordDecl 0x344e370 <col:1, col:7> col:7 implicit class Test_2 |-FieldDecl 0x3490bd0 <line:9:2, col:19> col:10 first 'int64_t':'long' | `-IntegerLiteral 0x344e400 <col:19> 'int' 40 |-FieldDecl 0x3490c70 <line:10:2, col:19> col:10 second 'int32_t':'int' | `-IntegerLiteral 0x3490c40 <col:19> 'int' 24 |-CXXConstructorDecl 0x3491438 <line:8:7> col:7 implicit used Test_2 'void (void) noexcept' inline | `-CompoundStmt 0x34918f8 <col:7> |-CXXConstructorDecl 0x3491568 <col:7> col:7 implicit constexpr Test_2 'void (const class Test_2 &)' inline noexcept-unevaluated 0x3491568 | `-ParmVarDecl 0x34916b0 <col:7> col:7 'const class Test_2 &' `-CXXConstructorDecl 0x3491748 <col:7> col:7 implicit constexpr Test_2 'void (class Test_2 &&)' inline noexcept-unevaluated 0x3491748 `-ParmVarDecl 0x3491890 <col:7> col:7 'class Test_2 &&' Layout: <CGRecordLayout LLVMType:%class.Test_2 = type { i64 } NonVirtualBaseLLVMType:%class.Test_2 = type { i64 } IsZeroInitializable:1 BitFields:[ <CGBitFieldInfo Offset:0 Size:40 IsSigned:1 StorageSize:64 StorageOffset:0> <CGBitFieldInfo Offset:40 Size:24 IsSigned:1 StorageSize:64 StorageOffset:0> ]> 似乎是零,所以编译时遇到致命错误。有谁知道解决方案? entityDescription在同一个类(AppDelegate)中声明。

persistentContainer

2 个答案:

答案 0 :(得分:4)

请检查方法名称,以下代码为我创建了一个NSEntityDescription对象。

let desc:NSEntityDescription? = NSEntityDescription.entityForName("Person", inManagedObjectContext: self.managedObjectContext);
print(desc)

答案 1 :(得分:2)

您应该查看Core Data Xcode模板。 (选择新项目,检查,主/详细信息,检查核心数据。)在Swift 3中,您将使用有效的托管对象上下文创建一个新对象。

let newPerson = Person(context: context)
newPerson.first = "Thomas"