2013-07-12 5 views
5

में मान डालने कर रहा हूँ मैं दो तरीकों,क्यों CoreData अशक्त सरणी लौटा रहा है, जबकि मैं मेज

पहली विधि में है, मैं कोर डेटा में मूल्यों को बचाने करते हैं, जबकि अन्य में, मैं सिर्फ उन्हें लाने।

डालने के बाद, जब मैं एक ही विधि में डेटा लाता हूं, तो यह मूल्य दिखाता है, लेकिन जब मैं अन्य विधि में लाने की कोशिश करता हूं तो मुझे शून्य देता है।

मेरे बचत विधि

-(void) saveloginData:(NSString *)facebookTok username:(NSString *)userName password:(NSString*)password flag:(NSString *)flag { 


NSError *error; 

NSManagedObjectContext *context = [self managedObjectContext]; 



NSFetchRequest * fetchRequest = [[NSFetchRequest alloc] init]; 
[fetchRequest setEntity:[NSEntityDescription entityForName:@"SignIn" inManagedObjectContext:context]]; 
[fetchRequest setIncludesPropertyValues:NO]; //only fetch the managedObjectID 

NSString *facebookTokenData = facebookTok; 
NSString *usernameData = userName; 
NSString *passwordData = password; 
NSString *flagData = flag; 


NSLog(@"Facebook Token%@\nUsername%@\npassword%@\nflat%@\n",facebookTokenData,usernameData,passwordData,flagData); 


SignIn *signIn = [NSEntityDescription 
             insertNewObjectForEntityForName:@"SignIn" 
             inManagedObjectContext:context]; 

signIn.facebookToken = facebookTokenData; 
signIn.username = usernameData; 
signIn.password = passwordData; 
signIn.flag = flagData; 


NSEntityDescription *entity = [NSEntityDescription entityForName:@"SignIn" 
              inManagedObjectContext:context]; 

[fetchRequest setEntity:entity]; 

NSArray *fetchedArray = [context executeFetchRequest:fetchRequest error:&error]; 


for (SignIn *info in fetchedArray) { 
      \\ THis executes and shows values, proves that value are inserted. 

    NSLog(@"Name ~~~~ : %@", info.username); 
    NSLog(@"Password ~~~~~~~~ :%@", info.password); 
    NSLog(@"FLAG ~~~~~~~~~~~ %@",info.flag); 
    NSLog(@"Facebook Token %@", info.facebookToken); 
} 
} 

मेरा पुनः प्राप्त विधि

-(NSArray*) getLoginData { 

NSError *error; 

NSManagedObjectContext *context = [self managedObjectContext]; 

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 

NSEntityDescription *entity = [NSEntityDescription entityForName:@"SignIn" 
              inManagedObjectContext:context]; 


[fetchRequest setEntity:entity]; 

NSArray *fetchedData = [[NSArray alloc] init]; 


fetchedData = [context executeFetchRequest:fetchRequest error:&error]; 

NSLog(@"The count of Array %d", [fetchedData count]); \\ HERE COUNT IS ZERO, WHY? 


for (SignIn *info in fetchedData) { 
    NSLog(@" FF Name ~~~~ : %@", info.username); 
    NSLog(@"Password ~~~~~~~~ :%@", info.password); 
    NSLog(@"FLAG ~~~~~~~~~~~ %@",info.flag); 
    NSLog(@"Facebook Token %@", info.facebookToken); 
} 


return fetchedData; 
} 

कृपया मार्गदर्शन कि मैं कहाँ गलती कर रहा हूँ है।

+0

प्रबंधित वस्तु संदर्भ दोनों तरीकों में एक ही है:

तो तुम संदर्भ बचाने के लिए यदि आप अपने वस्तु को संशोधित करने के बाद की ज़रूरत है? –

उत्तर

4

आपकी समस्या यह है कि आपको इसे बाद में इकाई प्राप्त करने के लिए conext को सहेजने की आवश्यकता है।

NSManagedObjectContext save: पंजीकृत वस्तुओं में उनके निरंतर स्टोर में सहेजे गए परिवर्तनों को करने का प्रयास।

- (BOOL)save:(NSError **)error 

पैरामीटर: error: एक NSError वस्तु के लिए एक सूचक। आपको NSError ऑब्जेक्ट बनाने की आवश्यकता नहीं है। यदि आप NULL पास करते हैं तो पहली विफलता के बाद सहेजने का ऑपरेशन बंद हो जाता है।

वापसी मूल्य YES यदि बचत सफल होती है, अन्यथा NO

signIn.facebookToken = facebookTokenData; 
signIn.username = usernameData; 
signIn.password = passwordData; 
signIn.flag = flagData; 

[context save:NULL]; // NULL if you don't need to handle error 
+0

मेरे लिए काम किया, लेकिन एक बात, मैं इसके बारे में पूछना चाहता हूं ... – Duaan

+0

मैंने प्रिय स्वीकार कर लिया है, धन्यवाद मेरी मदद करने के लिए बहुत बहुत :) – Duaan

संबंधित मुद्दे