Ios kal代表问题

Ios kal代表问题,ios,delegates,calendar,Ios,Delegates,Calendar,我认为正确设置KalViewController的委托-复制Holiday和NativeCal演示-但我不能这样做,因为我在单击日期单元格时遇到以下错误: -[UINavigationButton didSelectDate:]: unrecognized selector sent to instance 当我在所有异常上设置断点时,我看到它在KalGridView.m的函数中引发了一个异常: - (void)setSelectedTile:(KalTileView *)tile {

我认为正确设置KalViewController的委托-复制Holiday和NativeCal演示-但我不能这样做,因为我在单击日期单元格时遇到以下错误:

-[UINavigationButton didSelectDate:]: unrecognized selector sent to instance 
当我在所有异常上设置断点时,我看到它在KalGridView.m的函数中引发了一个异常:

- (void)setSelectedTile:(KalTileView *)tile
{
  if (selectedTile != tile) {
    selectedTile.selected = NO;
    selectedTile = [tile retain];
    tile.selected = YES;
    [delegate didSelectDate:tile.date]; // exception raised here
  }
}
下面是我设置委托的代码(几乎是从演示代码中复制的):

这个错误是有意义的,因为我正在将委托设置为我自己的ViewController,而ViewController没有实现didSelectDate。另一方面,在KalViewController的委托上设置的Holiday和NativeCal类也没有,它们都是

NSObject <UIApplicationDelegate, UITableViewDelegate>
NSObject

非常感谢。。我不仅仅是一个触摸卡。

这是一个罕见的情况,在这种情况下,代理可能会被保留,因为它正在被释放和替换。重写
-setDelegate:
并保留您的委托。

您的委托正在被释放(或分配不正确),并被其他实例替换。覆盖
-setDelegate:
并调用
-retain
。您能告诉我们您在哪里设置代理的代码吗?我刚刚编辑了这个问题以显示更多示例代码并进行了更多解释。@CodaFi我假设您建议我在KalViewController中覆盖
setDelegate:
。这真的是问题所在吗?我不应该离开库吗?@CodaFi-我检查过(使用
lldb
中的
po
),是的,确实,委托与它设置的不同。虽然我没有确切的答案,但我知道该去哪里找,谢谢。也许你发表评论和回答,我会接受的?有点。这确实是一个代表问题。但是,
日历
是在viewDidLoad中创建的,然后在viewDidLoad完成时消失。这与
Holiday
示例应用程序的代码相同,但在那里,他们在AppDelegate中调用applicationdFinishLaunching,我认为这永远不会失去作用域(我希望我的术语是正确的)。
NSObject <UIApplicationDelegate, UITableViewDelegate>