एक अच्छा जवाब पहले से ही पोस्ट किया गया था, यह केवल एक सिफारिश है!
एक अच्छा तरीका सिर्फ एक श्रेणी जोड़ना NSManagedObject
और एक विधि को लागू करना होगा जैसे मैंने किया था:
हैडर फ़ाइल (जैसे NSManagedObject+Ext.h
)
@interface NSManagedObject (Logic)
+ (void) deleteAllFromEntity:(NSString*) entityName;
@end
कोड फ़ाइल: (जैसे NSManagedObject + Ext.m)
@implementation NSManagedObject (Logic)
+ (void) deleteAllFromEntity:(NSString *)entityName {
NSManagedObjectContext *managedObjectContext = [AppDelegate managedObjectContext];
NSFetchRequest * allRecords = [[NSFetchRequest alloc] init];
[allRecords setEntity:[NSEntityDescription entityForName:entityName inManagedObjectContext:managedObjectContext]];
[allRecords setIncludesPropertyValues:NO];
NSError * error = nil;
NSArray * result = [managedObjectContext executeFetchRequest:allRecords error:&error];
for (NSManagedObject * profile in result) {
[managedObjectContext deleteObject:profile];
}
NSError *saveError = nil;
[managedObjectContext save:&saveError];
}
@end
... केवल एक चीज जो आपको करनी है, वह है AppO डेलिगेट से ManageObjectContext प्राप्त करना, या जहां प्रत्येक के पास यह है;);
बाद में आप इसका उपयोग कर सकते हैं जैसे:
[NSManagedObject deleteAllFromEntity:@"EntityName"];
एक और अनुकूलन यह हो सकता है कि आप tha Unitname के पैरामीटर को हटा दें और clazzname के बजाय नाम प्राप्त करें। इससे उपयोग को बढ़ावा मिलेगा:
[ClazzName deleteAllFromEntity];
एक अधिक स्वच्छ प्रत्यारोपण (श्रेणी के रूप में NSManagedObjectContext के लिए):
@implementation NSManagedObjectContext (Logic)
- (void) deleteAllFromEntity:(NSString *)entityName {
NSFetchRequest * allRecords = [[NSFetchRequest alloc] init];
[allRecords setEntity:[NSEntityDescription entityForName:entityName inManagedObjectContext:self]];
[allRecords setIncludesPropertyValues:NO];
NSError * error = nil;
NSArray * result = [self executeFetchRequest:allRecords error:&error];
for (NSManagedObject * profile in result) {
[self deleteObject:profile];
}
NSError *saveError = nil;
[self save:&saveError];
}
@end
तब उपयोग:
[managedObjectContext deleteAllFromEntity:@"EntityName"];