मेरे iPhone अनुप्रयोग क्रैश हो रहा है, और मैं अतीत खूनी सप्ताह के दौरान यह एक लाइन के लिए नीचे यह संकुचित है:उद्देश्य-सी एक एनएसएआरएआर ठीक से कॉपी करें?
NSArray *fetchResults = [managedObjectContext executeFetchRequest:request error:&error];
मैं ऊपर से सही परिणाम हो रही है, लेकिन यह तक पहुँचने के बाद ऐप्लिकेशन क्रैश (EXC_BAD_ACCESS
)। मैं सिर्फ fetchResults
की सामग्री कैसे कॉपी करूं ताकि मैं इसके साथ खेल सकूं?
मैं
NSArray *retVal = [[NSArray alloc] initWithArray:fetchResults];
NSArray *retVal = [[NSArray alloc] initWithArray:[fetchResults copy]];
NSArray *retVal = [[NSArray alloc] initWithArray:[fetchResults retain]];
की कोशिश की है, लेकिन केवल एक चीज है कि एप्लिकेशन क्रैश नहीं होता
NSArray *retVal = [[NSArray alloc] initWithArray:nil];
किसी ने मुझे बाहर करने में मदद कर सके है? मुझे लगता है कि मुझे ओब्जे-सी मेमोरी प्रबंधन में एक सबक चाहिए।
संपादित करें:
NSArray *fetchResults = [managedObjectContext executeFetchRequest:request error:&error];
[request release];
NSMutableArray *retVal = [NSMutableArray arrayWithCapacity:0];
for(Job *job in fetchResults){
//NSLog(@"dev: %@",job.lastmod_device);
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
[job.jobkey copy], @"entitykey",
[NSNumber numberWithInt:[job.lastmod_device timeIntervalSince1970]], @"job_lastmod_device",
[NSNumber numberWithInt:[job.lastmod_server timeIntervalSince1970]], @"job_lastmod_server",
[NSNumber numberWithInt:[job.customer.lastmod_device timeIntervalSince1970]], @"customer_lastmod_device",
[NSNumber numberWithInt:[job.customer.lastmod_server timeIntervalSince1970]], @"customer_lastmod_server",
[NSNumber numberWithInt:[job.productionschedule_lastmod_device timeIntervalSince1970]], @"productionschedule_lastmod_device",
[NSNumber numberWithInt:[job.productionschedule_lastmod_server timeIntervalSince1970]], @"productionschedule_lastmod_server", nil];
//NSLog(@"dict: %@", dict);
[retVal addObject:dict];
}
return retVal;
और कोड है कि इस विधि कॉल: यहाँ कोड को अधिक अच्छी तरह उदाहरण है कि दुर्घटनाओं है
NSArray *arr2 = [self retrieveJobs];
(है कि यह है, मैं भी का उपयोग कभी नहीं परिवर्तनीय)
संपादित करें 2: यहां तक कि लूप के लिए खाली के साथ प्राप्त किए गए परिणाम को फिर से चालू करना और fetchResults
ऑब्जेक्ट के साथ कुछ भी नहीं करना ऐप क्रैश करता है। यह संभव ही कैसे है?
कृपया दिखाएं कि आप परिणाम कहां एक्सेस करते हैं। –
उपरोक्त संपादन देखें – kbanman