热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

XCode学习技巧之UserScripts

XCode学习技巧之UserScripts是本文要介绍的内容,XCode作为一款强大的IDE,当然也支持脚本功能。通过添加自己的脚本我们可以很方便的完成

XCode 学习技巧之 User Scripts是本文要介绍的内容,XCode作为一款强大的IDE,当然也支持脚本功能。通过添加自己的脚本我们可以很方便的完成我们的工作。

XCode中点击 Edit User Scripts即可方便的添加脚本,而且XCode自带的脚本也相当于给我们提供了丰富的样例。比如我们添加一个这样的脚本,并为其添加一个快捷键??P(快捷键添加方法参考Comments分类中的Un/Comment Selection脚本)

  1. #!/bin/sh  
  2.    
  3. echo "%%%{PBXSelection}%%%"  
  4. echo "#pragma mark -"  
  5. echo "#pragma mark %%%{PBXSelectedText}%%%"  
  6. echo "%%%{PBXSelection}%%%" 

注意在Output下拉列表中选择Replace Selection。这个脚本的作用是方便我们建立#pragma,首先提供pragma的名字,然后选中这个名字,按相应快捷键,#pragma就自动完成了,很方便。

这个脚本也可以这样写,我们就不用每行都写echo了

  1. #!/bin/sh  
  2. cat << EOF 
  3. %%%{PBXSelection}%%%  
  4. #pragma mark -  
  5. #pragma mark %%%{PBXSelectedText}%%%  
  6. %%%{PBXSelection}%%%  
  7. EOF 

除了bash脚本&#xff0c;XCode还支持Ruby&#xff0c;Python等多种语言的脚本&#xff0c;比如这个Ruby脚本

  1. #!/usr/bin/env ruby -w  
  2. # Source: http://allancraig.net/blog/?p&#61;315 
  3. properties &#61; &#39;&#39; 
  4. synthesize &#61; &#39;&#39; 
  5. release    &#61; &#39;&#39; 
  6. STDIN.read.each do |line  
  7.     line.gsub!(/\*/, &#39;&#39;).strip!  
  8.     words &#61; line.split(/\s&#43;/)  
  9.     label &#61; words.size > 2 ? words[1] : words[0]  
  10.     variable &#61; words[-1]  
  11.     properties << "&#64;property (nonatomic, retain) IBOutlet #{label} *#{variable}\n"  
  12.     synthesize << "&#64;synthesize #{variable}\n"  
  13.     release << "[#{variable.chop} release];\n"  
  14. end  
  15. synthesize << release.chomp 
  16. &#96;echo &#39;#{synthesize.chomp}&#39; | pbcopy&#96;  
  17. print properties.chomp 

脚本的作用是帮助我们添加&#64;property、&#64;synthesize、还有dealloc方法中相应的release。使用方法是选中.h文件中的成员变量&#xff0c;比如我们选中UIButton *aButton;&#xff0c;复制到要添加&#64;property的位置&#xff0c;再次选中&#xff0c;按快捷键执行脚本&#xff0c;&#64;property就添加完成了&#xff0c;然后到相应的.m文件中&#xff0c;在要添加&#64;synthesize的位置按?V粘贴&#xff0c;&#64;synthesize也添加好了&#xff0c;同时复制过来的还有[aButton release];&#xff0c;选中这行&#xff0c;剪切粘贴到dealloc方法中&#xff0c;大功告成。使用这个脚本不仅可以快速添加&#64;property &#64;synthesize&#xff0c;同时也避免了变量名写错所造成的一些问题。

小结&#xff1a;XCode 学习技巧之 UserScripts的内容介绍完了&#xff0c;希望本文对你有所帮助&#xff01;


转载于:https://www.cnblogs.com/pengyingh/articles/2402964.html


推荐阅读
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 本文详细介绍了批处理技术的基本概念及其在实际应用中的重要性。首先,对简单的批处理内部命令进行了概述,重点讲解了Echo命令的功能,包括如何打开或关闭回显功能以及显示消息。如果没有指定任何参数,Echo命令会显示当前的回显设置。此外,文章还探讨了批处理技术在自动化任务执行、系统管理等领域的广泛应用,为读者提供了丰富的实践案例和技术指导。 ... [详细]
  • JavaScript XML操作实用工具类:XmlUtilsJS技巧与应用 ... [详细]
  • 在安装 iOS 开发所需的 CocoaPods 时,用户可能会遇到多种问题。其中一个常见问题是,在执行 `pod setup` 命令后,系统无法连接到 GitHub 以更新 CocoaPods/Specs 仓库。这可能是由于网络连接不稳定、GitHub 服务器暂时不可用或本地配置错误等原因导致。为解决此问题,建议检查网络连接、确保 GitHub API 限制未被触发,并验证本地配置文件是否正确。 ... [详细]
  • 本文深入探讨了Java多线程环境下的同步机制及其应用,重点介绍了`synchronized`关键字的使用方法和原理。`synchronized`关键字主要用于确保多个线程在访问共享资源时的互斥性和原子性。通过具体示例,如在一个类中使用`synchronized`修饰方法,展示了如何实现线程安全的代码块。此外,文章还讨论了`ReentrantLock`等其他同步工具的优缺点,并提供了实际应用场景中的最佳实践。 ... [详细]
  • 如何在C#中配置组合框的背景颜色? ... [详细]
  • MySQL 8.0 MGR 自动化部署与配置:DBA 和开源工具的高效解决方案
    MySQL 8.0 MGR 自动化部署与配置:DBA 和开源工具的高效解决方案 ... [详细]
  • 2018年9月21日,Destoon官方发布了安全更新,修复了一个由用户“索马里的海贼”报告的前端GETShell漏洞。该漏洞存在于20180827版本的某CMS中,攻击者可以通过构造特定的HTTP请求,利用该漏洞在服务器上执行任意代码,从而获得对系统的控制权。此次更新建议所有用户尽快升级至最新版本,以确保系统的安全性。 ... [详细]
  • 在Ubuntu系统中配置Python环境变量是确保项目顺利运行的关键步骤。本文介绍了如何将Windows上的Django项目迁移到Ubuntu,并解决因虚拟环境导致的模块缺失问题。通过详细的操作指南,帮助读者正确配置虚拟环境,确保所有第三方库都能被正确识别和使用。此外,还提供了一些实用的技巧,如如何检查环境变量配置是否正确,以及如何在多个虚拟环境之间切换。 ... [详细]
  • 本文介绍了UUID(通用唯一标识符)的概念及其在JavaScript中生成Java兼容UUID的代码实现与优化技巧。UUID是一个128位的唯一标识符,广泛应用于分布式系统中以确保唯一性。文章详细探讨了如何利用JavaScript生成符合Java标准的UUID,并提供了多种优化方法,以提高生成效率和兼容性。 ... [详细]
  • 在使用Block时,正确的声明方法和确保线程安全是至关重要的。为了保证Block在堆中分配,应使用`copy`修饰符进行声明,因为栈中的Block与栈的生命周期绑定,容易导致内存问题。此外,还需注意Block捕获外部变量的行为,以避免潜在的循环引用和数据不一致问题。建议深入研究相关文档,以掌握更多高级技巧和最佳实践。 ... [详细]
  • 本文深入探讨了CGLIB BeanCopier在Bean对象复制中的应用及其优化技巧。相较于Spring的BeanUtils和Apache的BeanUtils,CGLIB BeanCopier在性能上具有显著优势。通过详细分析其内部机制和使用场景,本文提供了多种优化方法,帮助开发者在实际项目中更高效地利用这一工具。此外,文章还讨论了CGLIB BeanCopier在复杂对象结构和大规模数据处理中的表现,为读者提供了实用的参考和建议。 ... [详细]
  • 本文详细探讨了Zebra路由软件中的线程机制及其实际应用。通过对Zebra线程模型的深入分析,揭示了其在高效处理网络路由任务中的关键作用。文章还介绍了线程同步与通信机制,以及如何通过优化线程管理提升系统性能。此外,结合具体应用场景,展示了Zebra线程机制在复杂网络环境下的优势和灵活性。 ... [详细]
  • 探索聚类分析中的K-Means与DBSCAN算法及其应用
    聚类分析是一种用于解决样本或特征分类问题的统计分析方法,也是数据挖掘领域的重要算法之一。本文主要探讨了K-Means和DBSCAN两种聚类算法的原理及其应用场景。K-Means算法通过迭代优化簇中心来实现数据点的划分,适用于球形分布的数据集;而DBSCAN算法则基于密度进行聚类,能够有效识别任意形状的簇,并且对噪声数据具有较好的鲁棒性。通过对这两种算法的对比分析,本文旨在为实际应用中选择合适的聚类方法提供参考。 ... [详细]
author-avatar
我木良心c
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有