2013-04-10 59 views
1

有沒有一種方法可以以編程方式獲得核心數據對象的大小(以字節爲單位)?以編程方式獲得核心數據對象的大小(字節)

+0

'[nsDataObj長度]的兩個陣列和總和'給出字節。 – 2013-04-10 11:16:22

+2

@Anoop:'NSData'和核心數據('NSManagedObject')是完全不同的東西。 – 2013-04-10 11:19:37

+0

這就是爲什麼我使用'nsDataObj'。您可以將MangedObj轉換爲NSData並找到。希望[託管對象到數據](http://stackoverflow.com/questions/2357544/how-to-convert-an-nsarray-of-nsmanagedobjects-to-nsdata)將派上用場。 – 2013-04-10 11:23:47

回答

1

在此,存在SO線程轉換NSManagedObjectID into NSData

NSURL * url = [[YOUROBJECT objectID] URIRepresentation]; 
NSData * urlData = [NSKeyedArchiver archivedDataWithRootObject:url]; 
NSLog(@"Data Length :%d",[urlData length]); 
+0

對不起,我雖然這工作,但它給我的參考大小,而不是保存對象的大小。 – Alexandre 2013-04-12 15:46:20

0

則可以使用下面的代碼計算各個NSManagedObject

- (void) calculateSize { 

    NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Event"]; 

    NSArray *data = [self.managedObjectContext executeFetchRequest:request error:nil]; 

    NSLog(@"Size of %@: %zd", NSStringFromClass([data class]), malloc_size((__bridge const void *) data)); 


    int totalSize = 0; 
    for(NSManagedObject *object in data) 
    { 
     totalSize += malloc_size((__bridge const void *) object); 
    } 
    NSLog(@"Managed Object Size total:%d", totalSize); 
} 
相關問題