2010-10-15 17 views
5

मैं आईबी में बनाए गए सेल का उपयोग करके एक कस्टम टेबल व्यू बनाने की कोशिश कर रहा हूं। मुझे एक अजीब त्रुटि मिल रही है:कस्टम UITableViewCell त्रुटि

<BroadcastViewController 0x4b4f5f0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key postText. 

सबकुछ सेल नियंत्रक को आईबी में सही तरीके से तारित किया जाता है। वास्तव में यह सुनिश्चित नहीं है कि यह क्यों हो रहा है।

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

//Get the folder object of interest 
Broadcast *messageAtIndex = [self.messages objectAtIndex:indexPath.row] ; 

static NSString *CellIdentifier = @"BroadcastTableViewCell"; 
static NSString *CellNib = @"BroadcastTableViewCell"; 

BroadcastTableViewCell *cell = (BroadcastTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    //ERRORING ON THIS LINE... 
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellNib owner:self options:nil]; 
    cell = (BroadcastTableViewCell *)[nib objectAtIndex:0]; 
} 


cell.postText.text = messageAtIndex.replyText; 
cell.authorName.text = messageAtIndex.postCreatorFirstName; 
cell.postDate.text = messageAtIndex.creationDate; 

return cell; 

} 

किसी को भी करने से पहले त्रुटि इस तरह देखी गई:

इस तरह क्या मेरी cellForRowAtIndexPath लग रहा है? अगर आपको किसी और जानकारी की आवश्यकता है तो मुझे बताएं ...

+0

फ़ंक्शन सेल के लिए पूर्ण कोड की आवश्यकता है ForRowAtIndexPath – SegFault

+0

अपडेट किया गया है। – gabaum10

+0

ऐसा लगता है कि आप किसी ऐसे चीज़ में 'postText' के लिए कोई मान डालने का प्रयास कर रहे हैं जो NSDictionary नहीं है? :) – willcodejavaforfood

उत्तर

5

क्या वास्तव में अजीब बात है यह शिकायत है कि उस वर्ग BroadcastViewController KVC postText पर खरा नहीं उतरता है।

जहाँ तक मैं देख सकता हूं, postText आपके सेल में एक लेबल है, इसलिए इसके लिए आईबीओलेट BroadcastTableViewCell कक्षा में होना चाहिए। तो जांचें कि आपने आईबी में postText लेबल को लिंक किया है। साथ ही, यह हो सकता है कि इस लेबल के लिए आपके व्यू कंट्रोलर में आपके पास आईबीऑलेट था, आपने इसे हटा दिया है लेकिन आप आईबी में लिंक को मिटाना भूल गए हैं। वैसे भी, कहीं आपकी समस्या है। तथ्य यह है कि उस रेखा पर आपको त्रुटि है क्योंकि यह है कि आप वहां अपना एनआईबी लोड करते हैं, इसके पास सेल के साथ या मालिक के साथ कुछ भी नहीं है।

+0

ठीक है, ठीक है मैंने आईबी कनेक्शन की जांच की है और दोबारा जांच की है। सब कुछ ब्रॉडकास्टटेबल व्यूसेल क्लास में ठीक से जुड़ा हुआ है। किसी भी अन्य व्यू कंट्रोलर के लिए कोई लिंगरिंग कनेक्शन नहीं है। यह वास्तव में कोई समझ नहीं आता है ... – gabaum10

+0

आपको यह मिला। यह निब में कुछ था। धन्यवाद :) – gabaum10

1

डेक्यू के साथ कुछ करने के लिए कुछ है ReusableCellWithIdentifier एक UITableViewCell * लौटा रहा है।

मैं normaly ऐसा करते हैं:

UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier... 
CustomCell* acell = (CustomCell*)cell; 

नहीं के बराबर करने के लिए स्वामी सेट करें।

NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellNib owner:nil options:nil]; 
+0

ठीक है, मैं देखता हूं कि यह कैसे अच्छा विचार होगा, लेकिन यह अभी भी प्रारंभिक लोड पर मदद नहीं करता है, जब पहला सेल शून्य होता है। संभालने के लिए कुछ चाहिए: "अगर (सेल == शून्य)" – gabaum10

+0

उस पर ध्यान देने के बाद, यह अब काफी कुछ है जो मैं अभी करता हूं, इसे डालने का एक लंबा तरीका ... – gabaum10

+0

एनएसएआरएआरई * एनआईबी = [[एनएसबंडल मेनबंडल] loadNibNamed: सेलनिब मालिक: शून्य विकल्प: शून्य]; मालिक को शून्य पर सेट करें। –

1

ठीक है इसे समझ लिया। आईबी में कनेक्शन वास्तव में गलत थे। मैंने उन्हें वास्तविक वस्तुओं के विरोध में फ़ाइल के मालिक से जोड़ा था। मैं इसे भी स्टाइलियन देने जा रहा हूं क्योंकि उसने मुझे निब की जांच करने का निर्देश दिया था। आपकी सभी मदद का धन्यवाद!

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