ios - 核心数据Fetch请求语法查询

标签 ios objective-c core-data

列表已定义:

@property (nonatomic, strong) NSArray *list;

@synthesize list = _list;

有什么区别:

list = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];

self.list = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];

第一个返回 Core Data 中的所有记录,但第二个不返回任何内容。

最佳答案

我认为您必须阅读有关 Encapsulating Data 的应用文档.

特别是,在第一个代码片段中,您要通过访问器方法包装一个名为 _list 的实例变量。

一般来说,在 OOP 中,它们也称为 setter 和 getter。关于它们的优点的很好的讨论可以在 Why use getters and setters? 中找到。 .

所以,其他人的评论是正确的。 list 变量从何而来?

您需要了解的一件重要事情是,点语法是访问方法调用的一种简洁方式。因此,例如:

NSString *nickname = person.nickname;
person.nickname = @"This is my nickname";

等于

NSString *nickname = [person nickname];
[person setNickname:@"This is my nickname"];

一个注释。从 XCode 4.4 开始,新的 Apple LLVM 编译器 4.0 允许您跳过 @synthesize 指令。在底层,编译器生成一个带有 _ 后缀的实例变量。更多引用Automatic Property Synthesis With Xcode 4.4 .

关于ios - 核心数据Fetch请求语法查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19195644/

相关文章:

ios - Xcode 6 测试版 7 : storyboard adds extra space on right and left sides

iphone - 如何对 UILabel 的 textColor 进行动画处理?

swift - 核心数据 - 如何从实体属性中获取最大值(Swift)

iphone - 在tableView中显示数组中的数据

ios - 如何在 ios 中生成公钥/私钥对,swift

ios - Xcode 10 "Could not build module Darwin/Foundation/CoreFoundation"等

ios - 如何创建一个 NSManagedObjectContext 作为另一个 NSManagedObjectContext 的子集?

swift - 将数据从 Core Data 加载到 Today Widget

ios - 在 watchOS2 上只有声音和触觉的 Lo​​calNotification

ios - 我的通知代码有什么问题?