Ios 如何检查核心数据使用了多少磁盘空间?

Ios 如何检查核心数据使用了多少磁盘空间?,ios,objective-c,sqlite,core-data,Ios,Objective C,Sqlite,Core Data,我正在编写一个使用sqlite类型持久存储的核心数据应用程序,我知道表和数据存储在设备的某个地方 是否可以检查有多少内存核心数据用于存储对象?也许可以通过检查sqlite db文件的大小 如果可能,怎么做?我真的可以利用你的想法这取决于你使用的xcode 在ios8中 它存放在某处 /库/开发者/核心模拟器/设备/编号和 字母/数据/容器/数据/应用程序/数字和 信件/文件/ 数字和字母代表应用程序/计算机特有的文件夹,但看起来是这样的:779AE2245-F8W2-57A9-8C6D-9864

我正在编写一个使用sqlite类型持久存储的核心数据应用程序,我知道表和数据存储在设备的某个地方

是否可以检查有多少内存核心数据用于存储对象?也许可以通过检查sqlite db文件的大小


如果可能,怎么做?我真的可以利用你的想法

这取决于你使用的xcode

在ios8中

它存放在某处

/库/开发者/核心模拟器/设备/编号和 字母/数据/容器/数据/应用程序/数字和 信件/文件/

数字和字母代表应用程序/计算机特有的文件夹,但看起来是这样的:779AE2245-F8W2-57A9-8C6D-98643B1CF01A

您可以将下面的方法写入appdelegate.m

方法,并记录返回路径,如下所示:

// 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];
 }
它将在模拟器上为您提供文档目录url。然后转到finder Cmd+Shift+G并在此处键入此地址,您可以导航到核心数据用于存储应用程序数据的sqlite文件

对于Xcode 3、Xcode 4和Xcpde 5,它存储在

~/Library/Application-Support/iPhone-Simulator/[SDK 版本]/Applications/[App GUID]/Documents

编辑您可以使用以下代码来检查核心数据的sqlite数据库的大小。我认为它在所有情况下都可以工作,但我不确定,而且我也没有验证它的准确性。但我认为这是一种以编程方式提供检查核心数据数据库大小的顶级详细信息的方法

-(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; 
}

导航到应用程序的目录,遍历所有文件,直到找到sqlite扩展名。读取文件大小。如何以编程方式检查文件大小?你能添加一个小代码示例吗?我的意思是通过编程检查大小。你知道这是否可行吗?或者用其他方法来估计存储了多少数据?我已经给出了我的答案,请看一看。我已经在模拟器上测试过了,它运行良好,在大多数情况下都是不正确的。SQLite文件的大小不包括日志文件的大小,日志文件的大小可能比主SQLite文件大得多。