2011-02-24 4 views
0

내가 도움을 필요로 지속적인 저장되지 않습니다! ^^ 내 속성 (이름, prename) 사람의 두 개의 이름과 저장할에 쓰기목표 C 코어 데이터 - 속성

. 다른보기에서 attrubutes에 액세스하려고하면 해당 없음입니다. 나는 왜 그런지 이해하지 못합니까?!?

나는 이렇게했다. getProfile 메서드를 사용하여 profileContext를 얻고 점 표기법을 사용하여 특성에 액세스 한 다음 저장합니다. 내 NSLog는 올바른 이름과 나의 가져 오기를 보여줍니다.

ownProfile = [[MyProfile alloc] init]; 
profileContext = [ownProfile getProfile]; 
ownProfile = (MyProfile*)[NSEntityDescription insertNewObjectForEntityForName:@"MyProfile" inManagedObjectContext:profileContext]; 
ownProfile.Vorname = @"Max"; 
ownProfile.Nachname = @"Wilson"; 
NSLog(@"%@",ownProfile.Nachname); 



if ([profileContext hasChanges]) { 
    NSLog(@"It has changes!"); 
    [profileContext save:nil]; 
} 

//Fetching 
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"MyProfile" inManagedObjectContext:profileContext]; 
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease]; 
[request setEntity:entityDescription]; 

NSArray *array = [profileContext executeFetchRequest:request error:nil]; 
for (int i=0; i < [array count]; i++) { 
    MyProfile *object = [array objectAtIndex:i]; 
    NSLog(@"Name: %@",object.Nachname); 
} 

나는 그들이 전무 다른의 ViewController의 하위 클래스에서 속성에 액세스하려고하면

.

- (void)viewDidLoad { 
[super viewDidLoad]; 

ownProfile = [[MyProfile alloc] init]; 
NSManagedObjectContext *profileContext = [ownProfile getProfile]; 
ownProfile = [NSEntityDescription insertNewObjectForEntityForName:@"MyProfile" inManagedObjectContext:profileContext]; 

NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"MyProfile" inManagedObjectContext:profileContext]; 
NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
[request setEntity:entityDescription]; 
[request setIncludesPropertyValues:NO]; //only fetch the managedObjectID 

NSArray *array = [profileContext executeFetchRequest:request error:nil]; 
[request release]; 
MyProfile *object = [array objectAtIndex:[array count]-1]; 
NSLog(@"%@",object); 

}

내 getProfile 방법은 다음과 같이 보이는 NSManagedObjectClass이며 :이 코드입니다

-(NSManagedObjectContext*) getProfile { 


NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], 
         NSMigratePersistentStoresAutomaticallyOption, 
         [NSNumber numberWithBool:YES], 
         NSInferMappingModelAutomaticallyOption, nil]; 


NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil; 
NSLog(@"basePath = %@",basePath); 
NSURL *storeUrl = [NSURL fileURLWithPath:[basePath stringByAppendingFormat:@"CoreData.sqlite"]]; 
NSPersistentStoreCoordinator *persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[NSManagedObjectModel mergedModelFromBundles:nil]]; 
NSLog(@"PersistentStore = %@",persistentStoreCoordinator); 
NSError *error = nil; 

if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]) { 
    NSLog(@"error loading persistent store.."); 
    [[NSFileManager defaultManager] removeItemAtPath:storeUrl.path error:nil]; 
    if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]) { 
     NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
     abort(); 
    } 
} 

NSManagedObjectContext *profile = [[NSManagedObjectContext alloc] init]; 
[profile setPersistentStoreCoordinator:persistentStoreCoordinator]; 


return profile; 

}

저를 도와주세요! ^^

답변

0

안녕 얘들 아 ... 나는 내 문제를 해결했다 !!! :)

내 잘못은 물론 ... 나는 persistentStore의 줄에있는 viewDidLoad-방법에

ownProfile = [NSEntityDescription insertNewObjectForEntityForName:@"MyProfile" inManagedObjectContext:profileContext]; 

다른 개체를 추가하고 난 항상 속성이 전무 어디에 새 개체를 읽고 있었다이었다^