একটি ভাল উত্তর ইতিমধ্যে পোস্ট করা হয়েছিল, এটি কেবল একটি সুপারিশ!
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
... আপনার কেবলমাত্র জিনিসটি হ'ল অ্যাপ ডেলিগেটের কাছ থেকে পরিচালিতঅবজেক্ট কনটেক্সট পাওয়া, বা যেখানে আপনার এটি রয়েছে প্রত্যেকটি;)
এরপরে আপনি এটি ব্যবহার করতে পারেন:
[NSManagedObject deleteAllFromEntity:@"EntityName"];
আরও একটি অপ্টিমাইজেশন হ'ল আপনি থ সত্তা নামের জন্য প্যারামিটারটি সরিয়ে এবং ক্লাজনামের পরিবর্তে নাম পান। এটি ব্যবহারে নেতৃত্ব দেবে:
[ClazzName deleteAllFromEntity];
আরও ক্লিন ইমপ্ল (এনএসম্যানেজডঅবজেক্ট কনটেক্সট অনুসারে):
@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"];