事前に作成されたメソッドがあるかどうかわかりません。あなたは、例えば、別の容器にキーを追跡する、または、次の例のようにどこかの定数として、それらを定義する必要があると思います:
static NSUInteger const kMyNameIdx = 0U;
static NSUInteger const kMyMajorIdx = 1U;
static NSString * const kMyNameKey = @"name";
static NSString * const kMyMajorKey = @"major";
/* this does no error checking on the mo or array */
/* being null. it would be better to return an */
/* NSError from this function and check its value */
/* to handle error cases */
- (void) updateManagedObject:(NSManagedObject *)mo withOrderedArray:(NSArray *)array
{
id obj;
NSUInteger objIdx = 0U;
/* this assumes that name and major objects in */
/* your array are in the same order as set by */
/* the constants */
for (obj in array) {
switch (objIdx) {
case kMyNameIdx:
[mo setValue:obj forKey:kMyNameKey];
break;
case kMyMajorIdx:
[mo setValue:obj forKey:kMyMajorKey];
break;
default:
break;
}
objIdx++;
}
}
を、それを使用するには:
NSManagedObject *alice = [NSEntityDescription insertNewObjectForEntityForName:@"Student" inManagedObjectContext:context];
NSArray *myArray = /* ... */
[self updateManagedObject:alice withOrderedArray:myArray];
の追加があります。エンティティタイプStudent
のNSManagedObject
のcategory methodなどの変更を行うことができます。次に、Student
管理オブジェクトを使用する場所でこの関数を呼び出すことができます。あなたはデータ==========を取得し、あなたの配列
-(void)viewDidLoad
{
[self insertLoginData:YOUR ARRAY NAME];
}
- (BOOL)insertLoginData:(NSMutableArray *)loginInfoArray
{
NSError *error=nil;
NSManagedObjectContext *context = [self managedObjectContext];
NSManagedObject *propertyInfo = [NSEntityDescription
insertNewObjectForEntityForName:@"UserLogin"
inManagedObjectContext:context];
for(int count=0;count<[loginInfoArray count];count++)
{
[propertyInfo setValue:[[loginInfoArray objectAtIndex:count]objectForKey:@"UserId"] forKey:@"userName"];
[propertyInfo setValue:[[loginInfoArray objectAtIndex:count]objectForKey:@"Password"] forKey:@"password"];
}
if (![__managedObjectContext save:&error]) {
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
return NO;
}
else
{
return YES;
}
}
でこのメソッドを呼び出し、これまで