//YJYAppDelegate.h
#import <UIKit/UIKit.h>
@interface YJYAppDelegate : UIResponder <UIApplicationDelegate>
//Objective-C语言关键词,@property与@synthesize(在对应的.m文件中使用)配对使用。功能:让编译好器自动编写一个与数据成员同名的方法声明来省去读写方法的声明。
//声明为 Strong类型的对象会在执行时期自动保留且在生命周期结束前都是有效的,并在结束后会自动释放。这个关键字就像是 Objective-C传统内存管理方法中的retain。
//readonly只读,只产生简单的getter,没有setter。
//nonatomic: 禁止多线程,变量保护,提高性能
@property (strong, nonatomic) UIWindow *window;
//NSManagedObjectContext来得到被储存内容的文件管理器,对数据作直接操作
//这是程序员和管理对象模式之间的桥梁。使用管理对象的上下文,你可以将一个新的列插入到一个新的表格,从一个确定的表格里读取某一列,等等。(其实,Core Data 不会使用表格这个概念,但是在这里我会使用 term 来表示,因为它和列相似,将会更好的帮助你了解 Core Data 是怎样工作的。)
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;//上下文对象
//NSManagedObjectContext来得到被储存内容的文件管理器,对数据作直接操作
//这跟在一个数据库的框架的概念是一样的。它可以代表一个数据库的桌面或者在创建的数据库里的不同管理对象类型。
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;//数据模型对象
//NSPersistentStoreCoordinator来管理数据的储存位置,储存方法(SQLite)
//这是物理数据存储的物理文件和程序之间的联系的桥梁。这个桥梁将负责管理不同对象上下文。
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;//持久层对象
- (void)saveContext;//保存数据到持久层(数据库)
- (NSURL *)applicationDocumentsDirectory;//应用程序沙箱下的Documents目录路径
@end