繁体   English   中英

无法识别的选择器发送到实例

[英]unrecognized selector sent to instance

我正在尝试初始化一个数组并将一个章节对象添加到一个book对象数组中,但它崩溃了错误:

2012-07-25 21:41:01.503 Project1 [2364:f803] - [__ NSCFString arrayOfChapters]:无法识别的选择器发送到实例0x6ad80b0 2012-07-25 21:41:01.505 Project1 [2364:f803] *由于未被捕获而终止应用程序异常'NSInvalidArgumentException',原因:' - [__ NSCFString arrayOfChapters]:无法识别的选择器发送到实例0x6ad80b0'

我的代码:

Chapter *myChapter = [[Chapter alloc]init];
myChapter.pageCount = self.TextField2.text;
myChapter.chapterTitle = self.TextField1.text;
if(!currentBook.arrayOfChapters)
{
    currentBook.arrayOfChapters = [[NSMutableArray alloc]init];
}
currentBook = [books objectAtIndex:segControl.selectedSegmentIndex];
[currentBook.arrayOfChapters addObject:myChapter];

我认为代码是正确的,我的项目是否存在错误? 我相信这是导致实际崩溃的初始化,但那里没有任何非标准。

看起来currentBook是一个字符串或未初始化。

你可以在“ if(!currentBook.arrayOfChapters) ”行上创建一个断点来检查currentBook是否为零;

"currentBook = [books objectAtIndex:segControl.selectedSegmentIndex]; ”行上创建一个断点,检查segControl.selectedSegmentIndex> = [books count]

我可能会误读这个但是......

    if(!currentBook.arrayOfChapters)
    {
        // creating array for current book
        currentBook.arrayOfChapters = [[NSMutableArray alloc]init]; 
    }

    // reassigning a new book to current book. Are you sure this new one has array of chapters?
    currentBook = [books objectAtIndex:segControl.selectedSegmentIndex]; 

    // trying to access array of chapters
    [currentBook.arrayOfChapters addObject:myChapter]; 

你不应该首先分配,然后创建数组,如果它还没有?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM