指针不在嵌套的if语句处停止

时间:2013-08-05 20:59:02

标签: iphone objective-c ios6

通过添加断点和找到的指针调试程序没有得到嵌套的if语句

如果if语句逻辑是正确的,则害怕嵌套。

- (void)bookmarkcurrentIndex {

    currentIndex = [modelArray indexOfObject:contentViewController.page];

    if ([contentViewController.bookmarks containsIndex:currentIndex]) // Remove bookmark

        if (BookmarkState == NO) {

            [contentViewController.bookmarks removeIndex:currentIndex];

        }
        else {   

            [contentViewController.bookmarks addIndex:currentIndex];

        }
    }
}

编辑:

- (IBAction)bookmarkAction:(id)sender {



if (_BookmarkState != _bookmarkbtn.tag)
{
    [_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-N.png"] forState:UIControlStateNormal];
    _bookmarkbtn.tag = 0;
     [self setBookmarkState:NO];

}
else
{
    [_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-Y.png"] forState:UIControlStateNormal];     
    _bookmarkbtn.tag = 1;
    [self setBookmarkState:YES];

}

_bookmarkbtn.tag = _BookmarkState;

[self bookmarkcurrentIndex];

}

2 个答案:

答案 0 :(得分:1)

如果BookmarkState属于boolean属性,则表示您缺少self。 (应为self.BookmarkState == NO。)

<强>更新

在更新的示例代码中,您要将BOOLINT进行比较。 (if (_BookmarkState != _bookmarkbtn.tag))需要解决。

您还需要更新if条件才能使用_BookmarkStateself.BookmarkState

第二次更新:

您目前正在检查_BookmarkState != _bookmarkbtn.tag是否正在将BOOL(是/否)与INT(0/1)进行比较。你不应该这样做。相反,使用BOOL来确定状态:

if (self.BookmarkState) { // If it's YES.
  [_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-N.png"]
                forState:UIControlStateNormal];
} else { // It's NO.
  [_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-Y.png"] 
                forState:UIControlStateNormal];
}
self.BookmartState = !self.BookmarkState;

这是第一个问题。

答案 1 :(得分:1)

当我匹配您的开始和结束括号时,它们不匹配。你的外部if声明似乎无处可去。仔细看看我是否正确。您是否已将代码直接复制并粘贴到此处的表单中?如果是这样,您的代码出了问题。它应该是这样的:

- (void)bookmarkcurrentIndex {

    currentIndex = [modelArray indexOfObject:contentViewController.page];

    if ([contentViewController.bookmarks containsIndex:currentIndex]) { // Remove bookmark

        if (BookmarkState == NO) {
            [contentViewController.bookmarks removeIndex:currentIndex];
        } 
        else {   
          [contentViewController.bookmarks addIndex:currentIndex];
        }
    }
}

你会看到我重新格式化它并纠正它。你在if ([contentViewController.bookmarks containsIndex:currentIndex])之后错过了左大括号。我希望这是你的问题。