热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

自动提示宏--输入什么属性,就把属性自动生成OC字符串

自定义下面的宏就拥有自动提示属性功能#definekeyPath(objc,keyPath)@(((void)objc.keyPath,#keyPath));

自定义下面的宏就拥有自动提示属性功能

#define keyPath(objc,keyPath) @(((void)objc.keyPath,#keyPath));
 
 

一:作用和使用场景

  • 自动提示宏意义:输入什么属性,就把属性自动生成OC字符串.
  • 自动提示宏作用:输入某个对象的某个属性的时候有自动提示功能
  • 自动提示宏应用场景:在KVO,KVC中使用自动提示宏,监听某个对象某个属性,通过自动提示宏,就可以防止输入错误.

二:自动提示宏如何实现:

  • 了解宏的实现原理,每输入一个字母就会拷贝一次,首先会把之前的内容补齐

  • 在宏里面如果在参数前添加了#,就会把参数变成C语言字符

  • 在代码中,输入某个对象的某个属性的时候都有提示,可以在宏里面也有做这样的操作,假设在宏里面输入某个对象的某个属性.

  • 最终宏需要把宏里面的keyPath这个参数生成一个OC字符串

  • 使用逗号表达式,永远等于最右边的值,在右边生成一个keyPath的OC字符串

  • 一旦把一个值强转成void类型,表示不使用这个值

  • 在宏里面只能做到把参数变成c字符串,因此先生成c字符串,在转换成OC字符串.

  • 在宏里面如果在参数前添加了#,就会把参数变成C语言字符串 #keyPath = “keyPath”

  • c语言如何转OC字符串,也是包装一下 @(“c”)


推荐阅读
  • 在使用mybatis进行mapper.xml测试的时候发生必须为元素类型“mapper”声明属性“namespace”的错误项目目录结构UserMapper和UserMappe ... [详细]
  • 本文详细介绍了如何在Java Swing中使用`JButton.registerKeyboardAction()`方法来为按钮设置键盘快捷键,并提供了多个实用的代码示例。 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • 使用Python构建网页版图像编辑器
    本文详细介绍了一款基于Python开发的网页版图像编辑工具,具备多种图像处理功能,如黑白转换、铅笔素描效果等。 ... [详细]
  • 本报告记录了嵌入式软件设计课程中的第二次实验,主要探讨了使用KEIL V5开发环境和ST固件库进行GPIO控制及按键响应编程的方法。通过实际操作,加深了对嵌入式系统硬件接口编程的理解。 ... [详细]
  • 多路查找树:B树与B+树详解
    本文详细介绍了B树及其变种B+树的基本概念、特性以及应用场景。B树作为一种平衡的多路查找树,在数据库和文件系统中有着广泛的应用。文章不仅解释了B树的定义,还深入探讨了B树的结构特点及操作方法。 ... [详细]
  • 探讨了在变量已定义的情况下,如何优雅地调用其方法并进行赋值,同时遵循代码简洁性和DRY原则。 ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • 本文探讨了互联网服务提供商(ISP)如何可能篡改或插入用户请求的数据流,并提供了有效的技术手段来防止此类劫持行为,确保网络环境的安全与纯净。 ... [详细]
  • 在开发过程中,有时需要提供用户创建数据库的功能。本文介绍了如何利用 .NET 和 ADOX 在应用程序中实现创建 Access 数据库,并详细说明了创建数据库及表的具体步骤。 ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • binlog2sql,你该知道的数据恢复工具
    binlog2sql,你该知道的数据恢复工具 ... [详细]
  • 本文提供了多种有效的方法来解决RPC(远程过程调用)服务器不可用的问题,包括通过修改注册表、使用SC命令以及利用故障恢复控制台等技术手段。 ... [详细]
  • 本文详细介绍了 Redis 中的主要数据类型,包括 String、Hash、List、Set、ZSet、Geo 和 HyperLogLog,并提供了每种类型的基本操作命令和应用场景。 ... [详细]
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
author-avatar
怪话greenup
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有