2012-08-03 10 views
6

भेजा गया मैं त्रुटि प्राप्त हो रही:न पहचाना गया चयनकर्ता उदाहरण UIViewController

NSInvalidArgumentException', reason: '-[UIViewController setPhotoCellName:]: unrecognized selector sent to instance

जब मैं प्रवेश मेरी segue कॉल के लिए तैयार करते हैं। वर्तमान में मैं उस पर एक यूआई छवि के साथ

TabBarController->NavigationController->TableViewController->TableViewController->ViewController

है।

समस्या तब होती है जब मैं दूसरे टेबल व्यू नियंत्रक से ViewController पर segue करने का प्रयास करता हूं। मेरे पास प्रोटोटाइप सेल से वास्तविक व्यू कंट्रोलर तक segue सेटअप है। यह segue और दुर्घटनाओं में प्रवेश करता है। मैं संपत्ति viewController पर उस URL में उपयोग करने में सक्षम होने और UIImage प्रदर्शित करने का प्रयास करने की कोशिश कर रहा हूं। PhotoInPlace में वह सरणी है जो मैं पास करने की कोशिश कर रहा हूं। कोड यहाँ है।

myTableViewControllerPhotoLocation.m कोड

#import "myTableViewControllerPhotoLocation.h" 
#import "FlickrImageViewController.h" 

@interface myTableViewControllerPhotoLocation() 
@end 

@implementation myTableViewControllerPhotoLocation 
@synthesize photoInPlace = _photoInPlace; //Contains NSArray to pass 


-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    if([segue.identifier isEqualToString:@"Photo Display"]){ 
     NSIndexPath* indexPath = [self.tableView indexPathForCell:sender]; 
     NSLog(@" Dicitonary = %@", [self.photoInPlace objectAtIndex:indexPath.row]); //Returns the picked cell 
     NSLog(@"%@", [self.photoInPlace class]); //returns NSArray 
     NSLog(@"%@", [self photoInPlace]); //Returns the array 

     [segue.destinationViewController setPhotoCellName:[self.photoInPlace objectAtIndex:indexPath.row]]; 
     //Crashes HERE! 
    } 
} 

FlickrImageViewController.h कोड

@property (nonatomic, strong) NSArray* photoCellName; 

FlickrImageViewController.m कोड

#import "FlickrImageViewController.h" 

@interface FlickrImageViewController() 
@end 

@implementation FlickrImageViewController 
@synthesize photoCellName = _photoCellName; //property declared in header 


-(void) setPhotoCellName:(NSArray *)photoCellName{ 
    if(!_photoCellName) 
     _photoCellName = [[NSArray alloc] initWithArray:photoCellName]; 
    else { 
     _photoCellName = photoCellName; 
    } 
} 
+0

मैंने पूर्व टीवीसी में एक ऐरे पास करने के लिए कोड की इस शैली का उपयोग किया था, मुझे नहीं पता कि यह –

उत्तर

16

आपको विश्वास है कि आपका गंतव्य FlickrImageViewController से एक ऑब्जेक्ट है लेकिन ऐप नहीं करता है। उस वर्ग को देखें जिसे आपने अपने स्टोरीबोर्ड में नियंत्रक असाइन किया है; त्रुटि के अनुसार, यह एक नंगे UIViewController है।

+0

पर क्यों दुर्घटनाग्रस्त हो रहा है, इसलिए आपको स्टूडियोबोर्ड नियंत्रक वर्ग में दृश्य असाइन करना होगा? –

+0

दृश्य नहीं, दृश्य नियंत्रक। जब यह स्टोरीबोर्ड से लोड हो जाता है, तो रनटाइम को यह पता होना चाहिए कि किस प्रकार की ऑब्जेक्ट बनाना है। –

+0

मैंने ViewController की कक्षा को FlickrImageViewController में बदल दिया लेकिन अब मुझे एक नई त्रुटि मिलती है, [NSArray initWithArray: range: copyItems:]: सरणी तर्क एक एनएसएआरएआर –

5

ऐसा लगता है कि अगर आप गलती से नहीं बल्कि एक सादे वेनिला UIViewController मिल गया है FlickrImageViewController से। शायद आप नियंत्रक की कक्षा असाइन करना भूल गए?

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