gpt4 book ai didi

ios - 更好的解决方案来处理未实现的协议(protocol)所需的方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:03:44 25 4
gpt4 key购买 nike

当一个协议(protocol)要求的方法还没有实现时,Xcode 给出一个警告

警告:协议(protocol)“xxx”中的方法“xxx”未实现

我有一个像 UITableView 这样的自定义 View ,它有一个 dataSource 属性。为了确保 dataSource 不为 nil 并且响应我这样做的方法

NSAssert(self.dataSource != nil, @"menu's dataSource shouldn't be nil");
if ([self.dataSource respondsToSelector:@selector(menu:numberOfRowsInColumn:)]) {
return [self.dataSource menu:self
numberOfRowsInColumn:self.currentSelectedMenudIndex];
} else {
NSAssert(0 == 1, @"required method of dataSource protocol should be implemented");
return 0;
}

我想知道是否有更优雅的方法来处理缺少所需方法?

有什么想法吗?

最佳答案

这个解决方案对我来说看起来不错,因为可以为生产代码禁用断言,使其成为仅限开发人员的健全性检查。

如果协议(protocol)可以由第三方代码(即某种插件)实现,那么应该引发异常。

然而,一个稍微更容易编码和理解的断言很简单:

NSAssert(NO, @"blah blah blah");

关于ios - 更好的解决方案来处理未实现的协议(protocol)所需的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26082983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com