我正在编写一个使用sqlite类型持久存储的核心数据应用程序,我知道这些表和数据存储在设备的某个位置。
是否可以检查Core Data用于存储对象的内存量?也许通过检查sqlite db文件的大小?
如果可能,怎么样?我真的可以用你的想法
答案 0 :(得分:0)
这取决于您使用的xcode
ios8
它存储在某个地方
/ Library / Developer / CoreSimulator / Devices /(数字和 信件)/数据/容器/数据/应用/(数字和数字) 字母)/文档/
(数字和字母)代表一个应用程序/计算机独有的文件夹,但如下所示:779AE2245-F8W2-57A9-8C6D-98643B1CF01A
您可以将以下方法写入appDelegate.m,
方法和NSLogging返回路径,如下所示:
// Returns the URL to the application's Documents directory.
- (NSURL *)applicationDocumentsDirectory
{
NSLog(@"%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);
return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}
它将在模拟器上为您提供document
目录网址。然后转到查找程序Cmd+Shift+G
并在此处键入此地址,您可以导航到核心数据用于存储数据的sqlite
个文件你的应用程序
表示Xcode 3,Xcode 4和Xcpde 5存储在
〜/ Library / Application Support / iPhone Simulator / [SDK 版本] / Applications / [App GUID] / Documents
编辑您可以使用以下代码检查sqlite db
核心数据的大小。我认为它适用于所有情况,但我不确定,也不会验证它的准确性。但我认为这是一种提供以编程方式检查coredata
db大小的顶级细节的方法
-(NSUInteger)calculate{
//Check where you are making the sqlite
NSURL *url = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"yourPersistentStoreName"];
NSUInteger sizeOfData = [[NSData dataWithContentsOfURL:url] length];
NSLog(@"sizeOfDAta in bytes %lu",(unsigned long)sizeOfData);
return sizeOfData;
}