2015-08-20 5 views
5

मैं स्विफ्ट के साथ कोर डाटा में एक noob हूँ पहुंचा जा सकता।एक NSManagedObject उपवर्ग के गुण (EXC_BAD_ACCESS देता है)

func refreshPolls() 
{ 
    //do the query to populate the array 
    let req = NSFetchRequest(entityName: "Polls") 
    self.polls = self.managedObjectContext?.executeFetchRequest(req, error: nil) as! [Polls] 
    println(polls.count) 
} 

ध्यान दें कि self.polls एक सरणी के रूप में परिभाषित किया गया है:

import Foundation 
import CoreData 

class Polls: NSManagedObject { 

@NSManaged var title: String 
@NSManaged var pollDescription: String 

} 

एक UITableViewController उपवर्ग में, मैं इन वस्तुओं को लाते समय, इस तरह के लिए एक विधि है: मैं एक एकल NSManagedObject वर्ग जो इस तरह दिखता है "पोल" वस्तुओं की।

अब, cellForRowAtIndexPath: में मैं बस यह कर रहा हूं:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    var cell:UITableViewCell 
    if indexPath.row==0 
    { 
     cell = tableView.dequeueReusableCellWithIdentifier("EditPollCell") as! UITableViewCell 
    } 
    else 
    { 

     let poll:Polls = self.polls[indexPath.row-1] as Polls 
     //println(poll.title) //fails with EXC_BAD_ACCESS 

     cell = tableView.dequeueReusableCellWithIdentifier("PollCell") as! UITableViewCell 
     //cell.textLabel?.text = (poll.valueForKey("title") as! String) 


    } 

    return cell 

कि println टिप्पणी की EXC_BAD_ACCESS साथ विफल रहता है। कोई अतिरिक्त त्रुटि जानकारी नहीं दी गई है, और Polls वर्ग के गुणों में "गतिशील" जोड़ना कोई फर्क नहीं पड़ता है।

मैं Polls ऑब्जेक्ट की गुणों का उपयोग क्यों नहीं कर सकता? valueForKey विधि का उपयोग संदेश के साथ विफल रहता है " संपत्ति के मूल्य के बावजूद वैकल्पिक रूप से वैकल्पिक" अनचाहे होने पर अप्रत्याशित रूप से शून्य मूल्य मिलता है।

उत्तर

3

मुझे लगता है कि आपकी Polls सरणी NSManagedObject सरणी है। आपको यह उत्तर

CoreData: warning: Unable to load class named

+0

मैं एक विलक्षण रूप में मेरी इकाई का नाम बदला जा सकते हैं (पोल

//println(poll.title) //fails with EXC_BAD_ACCESS 

println(poll.valueForKey("title")) 

इस मदद करता है, तो साथ,: इस जांच करने के लिए, बदलने का प्रयास पोल के बजाए), जैसा कि आपने लिंक किए गए प्रश्न के पहले उत्तर में सुझाव दिया था, और समस्या गायब हो गई। मुझे कोई जानकारी नहीं है की क्यों। क्या आप शायद इसमें कुछ अंतर्दृष्टि दे सकते हैं? मैं नहीं करता, और नहीं था, मेरी कक्षा में @objc() एनोटेशन। नाम बदलने से समस्या ठीक क्यों होती है? – tutiplain

+0

@tutiplain क्या आपने 'वर्तमान उत्पाद मॉड्यूल.पॉल' से कक्षा का नाम सरल 'पोल' में भी बदल दिया था? –

+0

अब मुझे एक और दृश्य नियंत्रक पर एक ही समस्या है। कक्षा का नाम PollMaster.Poll है। पोलमास्टर ऐप का नाम है। यह नहीं बदला है। दूसरा दृश्य नियंत्रक मुझे अब समस्याएं आ रही हैं EXC_BAD_INSTRUCTION, एक ही संपत्ति तक पहुंच रही है। – tutiplain

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