मैं स्विफ्ट के साथ कोर डाटा में एक 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
विधि का उपयोग संदेश के साथ विफल रहता है " संपत्ति के मूल्य के बावजूद वैकल्पिक रूप से वैकल्पिक" अनचाहे होने पर अप्रत्याशित रूप से शून्य मूल्य मिलता है।
मैं एक विलक्षण रूप में मेरी इकाई का नाम बदला जा सकते हैं (पोल
इस मदद करता है, तो साथ,: इस जांच करने के लिए, बदलने का प्रयास पोल के बजाए), जैसा कि आपने लिंक किए गए प्रश्न के पहले उत्तर में सुझाव दिया था, और समस्या गायब हो गई। मुझे कोई जानकारी नहीं है की क्यों। क्या आप शायद इसमें कुछ अंतर्दृष्टि दे सकते हैं? मैं नहीं करता, और नहीं था, मेरी कक्षा में @objc() एनोटेशन। नाम बदलने से समस्या ठीक क्यों होती है? – tutiplain
@tutiplain क्या आपने 'वर्तमान उत्पाद मॉड्यूल.पॉल' से कक्षा का नाम सरल 'पोल' में भी बदल दिया था? –
अब मुझे एक और दृश्य नियंत्रक पर एक ही समस्या है। कक्षा का नाम PollMaster.Poll है। पोलमास्टर ऐप का नाम है। यह नहीं बदला है। दूसरा दृश्य नियंत्रक मुझे अब समस्याएं आ रही हैं EXC_BAD_INSTRUCTION, एक ही संपत्ति तक पहुंच रही है। – tutiplain