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