首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Swift 4.2响应Selector返回false,如何检查属性是否存在?

在Swift 4.2中,我们可以使用responds(to:)方法来检查一个对象是否响应特定的Selector。该方法返回一个布尔值,如果对象可以响应指定的Selector,则返回true,否则返回false。

以下是一个示例代码,演示如何检查属性是否存在:

代码语言:txt
复制
class MyClass: NSObject {
    @objc var myProperty: String = "Hello"
}

let myObject = MyClass()

if myObject.responds(to: #selector(getter: MyClass.myProperty)) {
    print("myProperty存在")
} else {
    print("myProperty不存在")
}

在上述示例中,我们定义了一个名为MyClass的类,并在该类中声明了一个名为myProperty的属性。我们使用@objc修饰符来使该属性可以被Objective-C代码访问。

然后,我们创建了一个MyClass的实例myObject。通过调用responds(to:)方法并传入#selector(getter: MyClass.myProperty)作为参数,我们可以检查myProperty属性是否存在。如果存在,我们打印"myProperty存在",否则打印"myProperty不存在"。

需要注意的是,为了使用responds(to:)方法来检查属性是否存在,该属性必须使用@objc修饰符进行标记,以便可以在Objective-C代码中访问。

推荐的腾讯云相关产品:无

希望以上信息对您有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • RxCocoa 源码解析——代理转发

    平常我们使用 RxSwift 的时候,一般不会去直接使用 delegate,譬如要处理 tableView 的点击事件,我们会这样:tableView.rx.itemSelected.subscribe(onNext: handleSelectedIndexPath),这跟先设置一个 delegate,然后在 delegate 的tableView(_:didSelectRowAt:)方法中调用handleSelectedIndexPath的效果是一样的。那这个过程到底是如何进行的呢?我们进入 RxCocoa 的 UITableView+Rx.swift 文件来一探究竟,这个文件中不仅有itemSelected,还有诸如itemDeselected、itemAccessoryButtonTapped、itemInserted、itemDeleted、itemMoved等等一系列对应 tableView delegate 的包装方法,本文就以itemSelected为例,其他的都是相同的原理。为便于理解,我会给源码加一点中文注释,:

    02

    Runtime系列(一)-- 基础知识

    众所周知,Objective-C 是一种运行时语言。运行时怎么来体现的呢?比如一个对象的类型确定,或者对象的方法实现的绑定都是推迟到软件的运行时才能确定的。而运行时的诸多特性都是由Runtime 来实现的。 Runtime 其实就是一套C语言API库,因此它的实现也还是C语言。如果你想看Runtime的实现源码,可以去官网下载:objc4-646.tar.gz(我看的是这个)。 本篇不打算介绍objc_msgSend,但是关于OC中的消息最终怎么被转化为objc_msgSend这个过程,还是有必要找一篇文章好好的看一下。 以下内容部分摘录自: 王巍 (@onevcat) 的 深入Objective-C的动态特性 Bang 的如何动态调用 C 函数 如果你觉得看的不尽兴,可以去看下这两篇文章。

    02

    iOS面试资料参考答案总结

    打个比方,如果把找工作理解成考大学,面试就是高考,市面上的“真题”就是模拟试卷。我们会很容易倾向于在面试前寻找对应公司的面试“真题”,重点准备,期待“押题”成功。但实际上,即使面试同一家公司,它会有不同部门,不同业务线,不同面试官,即使遇到同一面试官,他也不一定就每次考察完全一样的内容。想想高考中那些考的好的同学,他们肯定不是靠“押题”才能取得好成绩吧,他们大多靠的是平常积累及对知识点灵活掌握,那面试也一样啊。执着于搜题,把面试题当做重点进行“复习”,还不如自己划出“考纲”,各个知识点逐一检查掌握情况,复习的更全面呢。

    04

    iOS传感器:App前后台切换后,获取敏感信息使用touch ID进行校验1. 指纹识别传感器的用法介绍2. Touch ID指纹识别的代码实现3. 判断系统版本号的几种方法4. App从后台到前台,

    今天咱们主要是说指纹识别传感器,在文章的最后也会顺带说一下距离传感器。 Touch ID是苹果公司的一种指纹识别技术。Touch ID不存储用户的任何指纹图像,只保存代表指纹的数字字符。iPhone 的处理器采用了新的高级安全架构,其中有一块名为Secure Enclave的区域用以专门保护密码和指纹数据。只有Secure Enclave可以访问指纹数据,而且它还把这些数据同处理器和系统隔开,因而这些永远不会被存储在苹果的服务器上,也不会被同步到iCloud或其他地方。除了Touch ID之外,它们不会被匹

    07
    领券