在我被烤之前,让我说我已经查看了“无法识别的选择器发送到实例”的几乎所有答案,并尝试了一些建议但似乎没有任何效果。所以这是我的问题。
我在CreateAboutData
函数中调用我的函数viewDidLoad
。
-(void)createAboutData
{
NSMutableArray *aboutText;
aboutSections = [[NSMutableArray alloc] initWithObjects:@"About", nil];
aboutText = [[NSMutableArray alloc] init];
//Set About Info
[aboutText addObject:[[NSMutableDictionary alloc] initWithObjectsAndKeys:@"Scoring",@"title",@"Scoring blurb", @"text", nil]];
aboutData = [[NSMutableArray alloc] initWithObjects:aboutText, nil];
[aboutText release];
}
控制器即aboutView
由我的HomeView
控制器调用。
AboutViewTableController *aboutNavController = [[AboutViewTableController alloc] initWithNibName:@"AboutViewTableController" bundle:nil];
aboutNavController.title = @"About One";
// Create the nav controller and add the view controllers.
UINavigationController *theNavController = [[UINavigationController alloc] initWithRootViewController:aboutNavController];
// Display the nav controller modally.
[self presentModalViewController: theNavController animated:YES]; <==== THIS IS WHERE IT FAILS
当代码失败时,它会抱怨: - [__ NSArrayM长度]:无法识别的选择器发送到实例。
aboutData在头文件中与createData函数一起声明,如下所示:
@interface AboutViewTableController : UITableViewController {
NSMutableArray *aboutData;
NSMutableArray *aboutSections;
}
-(void)createAboutData;
@end
所以问题是为什么它提出了一个例外我一直在努力并尝试不同的途径无济于事。 我也尝试使用retain和nonatomic set使aboutData成为一个属性,但同样的问题就出现了。 我也很困惑,因为没有在哪里查询长度。 感谢
答案 0 :(得分:3)
有时会混淆其命名约定,通常在OT
中