iOS 代码开发的小技巧(在别人博客的继承上添加一些方法)

最新!!! iOS app添加微信授权登录——Qt for IOS 前言 为了将Qt开发的ios app增加微信授权登录的功能,我用了很长的时间去查资料和测试。之前我对于Qt开发苹果移动端不甚了解,只按照教程和自己琢磨,写过一版简单的app(那是我第一次接触ios),对于Qt是怎么实现跨平台到ios的,也不清楚,至于Qt框架是怎么转化成xcode那套框架的,这个从未想过。现在不容我再犯懒了:微信,无论是开发文档,还是库文件、接口,都是针对苹果原生态那套东西,接口的调用也是在原生态框架上,对于我跨平台实现,就太不友好了,所以怎么获取到原生态框架,是我的一大难点。 在我跨过 阅读详情
如果你是一位开发人员在开发过程中会发现有些代码无论是在同一个工程中还是在不同工程中使用率会很高,有经验的人会直接封装在一个类里,或者写成一个宏定义或者把这些代码收集起来,下次直接使用,或者放到xcode的代码片库里,直接使用, 从而提高开发效率;

1. 将常用代码片段封装成一个类里

当一个代码片在一个或多个工程之中经常出现时,把他封装在一个类里面,在使用时候直接传参即可实现对于功能,或者直接把这类放到另一个工程中同样使用;

使用UIAlertView举例

创建一个XF_UIKit类,对于声明文件和实现文件为

  1.   
  2. #import <Foundation/Foundation.h>  
  3.   
  4. @interface LPW_UIKit : NSObject  
  5. +(void)showAlert:(NSString *)title withMessage:(NSString *)message witchCancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSString *)otherButtonTitles, ... NS_REQUIRES_NIL_TERMINATION;  
  6. @end  

  1. #import "LPW_UIKit.h"  
  2.   
  3. @implementation XF_UIKit  
  4. +(void)showAlert:(NSString *)title withMessage:(NSString *)message witchCancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSString *)otherButtonTitles, ... NS_REQUIRES_NIL_TERMINATION  
  5. {  
  6.     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:self cancelButtonTitle:cancelButtonTitle otherButtonTitles:otherButtonTitles, nil];  
  7.     [alert show];  
  8.     [alert release];  
  9. }  
  10. @end  

使用的时候引入头文件直接调用类方法

  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.     [XF_UIKit showAlert:@"警告" withMessage:@"新风作浪的测试 " witchCancelButtonTitle:@"OK" otherButtonTitles: nil];  
  5.   
  6.     // Do any additional setup after loading the view, typically from a nib.  
  7. }  



2.使用宏

在 iOS开发中那些高效常用的宏一文例举了宏的使用,此处不再赘述;


3.使用Xcode自带代码片段库

在属性面板下面有一栏库面板选择条,有一项Code Snippet Library有iOS下OS X   和 User(用户自定义的)代码片段存储



(1)在这些库里有系统自带的代码片段,使用的时候直接拖到工程里,填上参数即可使用。

(2)用户自定义代码块,这也是本文讲解的重点。例如:

做过开发的都知道使用表示图单元格比较频繁,经常频繁写他们的delegate方法,如果把它们收集起来

  1. #pragma mark -  
  2. #pragma mark UITableViewDataSource and UITableViewDelegate Methods  
  3.   
  4. -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView  
  5. {  
  6.      
  7.     return 1;  
  8. }  
  9. -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{  
  10.       
  11.      
  12.     return 10;  
  13. }  
  14. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  
  15. {  
  16.     static NSString *CellIdentifier = @"Cell";  
  17.     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];  
  18.     if (cell == nil) {  
  19.         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];  
  20.     }  
  21.     return cell;  
  22. }  

这是绘制一个基本表示图单元必须实现的协议方法,全选这些代码拖到Code Snippet Library里面,如下图


然后会弹出一个编辑框,然后进行一个简单编辑,title表示你这个代码块标题,Summary 对这段代码片的简单介绍,Completion Shortcut表示一个快捷键,在我们工程中只要输入快捷键就可以显示整段代码片;



相应设置



把参数放在两个#号之间,比如 #参数#



编辑完毕选择Done,在User下即可看到TbaleView代码块



在使用的时候两种方式

①直接把这个代码块拖到工程中;

②在工程里面输入自己设置的快件建代码,比如刚刚设置的XFTableView,真个代码块全部出现;



在资源库(Libary)/Developer/Xcode/UserData/CodeSnippets下存放的就是你自定义的代码片段,如果重装Xcode记得备份哦!


4.继承

可以写一个   控制器,其他的 控制器 机都是气子类。这样 提高代码的复用性 和 降低代码之间的耦合度。


iOS TouchID/FaceID 开发 创建LXFAuthentication类的.h和.m文件,继承自LAContext .h代码如下: // // LXFAuthentication.h // Test // // Created by 凌煊峰 on 2019/6/21. // Copyright © 2019 凌煊峰. All rights reserved. // #import <LocalAuthent... 阅读详情

相关推荐

Unity iOS混合开发

我的第一篇博客是写的Unity和Android平台混合开发相关,接触iOS和Object-C也有一段时间了,此次,将讲述下Unity与iOS混合开发的原理,也为Unity高级移动端混合开发做下铺垫。闲话少说,直接上代码! 首先在代码之前我们先了解下Unity与iOS最基本的通讯方式https://docs.unity3d.com/Manual/PluginsForIOS.html Unity的...

lovin_Korla的博客 1181

iOS开发技巧 -- 复用代码片段

如果你是一位开发人员在开发过程中会发现有些代码无论是在同一个工程中还是在不同工程中使用率会很高,有经验的人会直接封装在一个类里,或者写成一个宏定义或者把这些代码收集起来,下次直接使用,或者放到xcode的代码片库里,直接使用, 从而提高开发效率; 1. 将常用代码片段封装成一个类里 当一个代码片在一个或多个工程之中经常出现时,把他封装在一个类里面,在使用时候直接传参即可实现对于功能,或者直接把

Linlei的专栏 1596

iOS开发:设置UICollectionView不同大小的item的方法

在iOS开发过程中,UICollectionView的使用作为iOS开发者来说都不陌生,但是要想完美的玩转UICollectionView的所有使用的技巧,还是需要了解很多的。本篇博文来分享一下关于UICollectionView设置不同大小item的方法,为的是迎合产品的需求,方便记录为了以后查看使用,分享给有需要的人。 设置不同大小的collectionview的item的方法也很简单,只是...

全沾软贱开发攻城狮 1万+

iOS开发-复用代码块(Xcode Code Snippets)

首先,必须先强调下代码复用的重要性。 复用的重要性:第一,较高的生产效率;第二,较高的软件质量;第三,适当的使用复用可以改善系统的可维护性。 复用不仅仅是代码的复用,代码复用只是复用的初等形式 传统的复用:代码的剪贴复用,算法的复用,数据结构的复用。 在一个面向对象的语言中,数据的抽象化、继承、封装和多态性等特性使得一个系统可以在更高的层次上提供复用性。 抽象化和

Colin丶 7003

ABA分析方法 — 软硬件开发必备的一种分析问题绝佳套路

可能你从很多地方听过这个名词,无论是在软件开发还是硬件领域(比较典型的领域:汽车、消费电子、医疗等行业),ABA验证都是一种快速分析故障的一个方法,第一次听到这个词,当时是不是一脸懵逼,本文就深度带你了解下ABA的分析方法。简要概述就是:怀疑A模块导致系统故障,将B模块替换A模块,故障消失,再将A模块替换回来,故障复现,则说明A模块是导致系统故障的原因其实,ABA分析问题,可能很多人在工作中都或多或少用过这个方法,只是没有这个概念,说明白了就是控制变量和对比验证,没什么高大上的东西。

Eureka1024的博客 7322

Cadence导入tsmcN65GP PDK的完整流程与常见问题解析

本文详细介绍了Cadence导入tsmcN65GP PDK的完整流程,包括文件解压、目录结构解析、安装脚本运行及Cadence集成配置。重点解析了常见问题如文件路径错误、权限问题和工艺库显示不全的解决方案,并提供了实战技巧与优化建议,帮助用户高效完成PDK安装与配置。

weixin_29215391的博客 546

Xcode创建可复用的代码块

在各种程序开发中,编写代码的效率是非常重要的一个问题,各种优秀的编译器也都有相应的插件用于提高程序员的编码速度。在xcode中,可以通过定义代码块的方式将常用的一部分代码进行快捷呼出,首先xcode中为我们定义好了许多代码块,例如: 在使用这些代码模板时,我们只需要将其拖入我们的代码中,或者直接键入快捷键即可,十分的方便,当然,我们也可以将我们自己常用的代码块包装成模板,便于我们

狂枫怒寒江的博客 411

5G NR切换测量事件解析:从A1到B2的实战应用指南

本文深入解析5G NR切换测量事件,从A1到B2的实战应用指南。详细介绍了系统内切换事件(A1-A6)和系统间切换事件(B1-B2)的触发条件与配置建议,帮助优化网络性能。通过实际案例分享,展示如何调整参数提升切换成功率和降低乒乓切换率,适用于5G网络优化工程师。

tcp8optimizer的博客 512

IOS小技巧:善用代码块,快捷写代码

在iOS开发中,往往需要输入大量重复的代码,比如协议方法、初始化函数、GCD代码、函数注释说明等,如果每个重复出现的函数都需要重写一遍往往是比较耗费时间的,事实上所有的编译器在输入重复代码时,都有可以预设代码块的设置,Xcode在使用中尤其方便。选择Xcode右上角最右面的图标打开右侧视图,在最下方会有一个,表示代码块,很多系统预设的代码块都在其中,比如默认的初始化方法,switch-case、f...

qishiai819的博客 2693

最新版MySQL 9.0 数据库的下载与安装(图文)

本篇文章基于Windows 10 系统下载与安装MySQL 9.0 版本。

我是聂可的博客 7万+

STM32H723串口接收全为0 & CAN错误中断问题

STM32H723串口接收全为0 和 叠加的导致CAN错误问题

weixin_38743772的博客 3916

iOS—常用iOS、Mac框架和库及常用中文开发博客

目录 UI 下拉刷新模糊效果AutoLayout富文本图表表相关隐藏与显示HUD与Toast对话框其他UI 动画 侧滑与右滑返回手势其他动画 网络相关 网络连接网络测试图像获取网络聊天网络测试WebView Model其他数据库缓存处理PDF图像浏览及处理摄像照相视频音频处理响应式框架消息相关 消息推送客户端消息推送服务器端通知相关 版本新API的Demo代码

victorai60的专栏 3735

C/C++跳动的爱心(完整代码)

C语言实现跳动的爱心的完整代码。

AIGC 5842

iOS多继承的实现及区别

来自我的个人博客Minecode.link多继承可以允许子类从多个父类派生,而Objective-C并不支持多继承,但我们仍可间接实现。Objective-C实现多继承主要可以通过协议、分类、消息转发来实现。我们来总结一下其使用以及优缺点。通过协议实现协议主要是用来提出类应遵守的标准,但其特性也可用来实现多继承。一个类可以遵守多个协议,也即实现多个协议的方法,以此来达到多继承的效果。概念上的单继承和

Minecode的博客 3237

Hermes Agent 安装部署完全指南

Hermes Agent安装部署指南提供了两种安装方式:一键脚本安装和手动分步安装。该AI助手支持多平台运行(Linux/macOS/WSL2),核心功能仅需Git作为前置依赖,其他依赖如Python、Node.js等均由安装脚本自动处理。文档详细介绍了系统要求、依赖管理、配置目录结构、环境变量设置以及10个手动安装步骤,并提供了功能模块化选项,用户可根据需求选择安装语音交互、浏览器自动化等扩展功能。安装完成后可通过hermes doctor命令验证环境,并通过交互式向导完成初始化配置。

简简单单Onlinezuozuo 2618

CARLA仿真:自定义地图与AI车辆行为编程

CARLA仿真:自定义地图与AI车辆行为编程 ,人工智能,计算机视觉,大模型,AI,本文围绕CARLA仿真平台,介绍了其基础功能与安装方法,详解地图系统,包括预设地图的加载切换及自定义地图的创建、导入与优化。还阐述了AI车辆的创建、属性设置、销毁,以及行为控制,如交通规则遵守、路径规划、复杂行为编程和行为树应用。同时涉及传感器与车辆感知、交通场景构建、自定义地图与AI行为结合应用、高级应用,以及常见问题解决方案和学习资源,为CARLA仿真应用提供全面指导。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 11万+

谈谈iOS中Categories(分类)、Extensions(类扩展)和继承的区别

最近乱点了篇博客,点击打开链接 博主总结得乱七八糟,虽然这知识点太过久远,还是我来谈谈iOS中Categories(分类)、Extensions(类扩展)和继承的区别 吧。 简单的讲,通过Categories(分类)即使在没有某个系统类源代码(iOS不开源的)的情况下,也可以为这个类添加新的方法声明。而新方法的实现可以在另外的文件中。 其语法举例如下:  #import "ClassNa

jaccty的博客 2084

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

IOS代码添加控件,控件移动,放大,缩小,旋转

控件移动,放大,缩小,旋转 1,代码添加控件 例如:

dwt1220 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

iOS 自定义弹窗UIAlertView —— HERO博客

iOS 自定义弹窗UIAlertView,继承UIWindow。

hero_wqb的博客 4425

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

iOS开发

iOS开发之路-菜鸟探索 我的博客文档 2015.10.13 常宣任 毕业从事iOS工作一年多了,从毕业前自学iOS到工作,再到独立开发了几个项目,有一种感觉就是永远都是嫌弃自己的代码,即使有时候做出来的功能并不差,可是代码能力真的不敢苟同。我也认真看了几个优秀的开源项目,比如OSChina、AmericanEnglish等,项目架构、代码布局、封装集成等都做得很出色,用最少的代码、最方便易改

jonrencxr的博客 2602

iOS开发之侧滑手势返回功能

废话 对于模态出来的viewcontroller,我们往往无法使用侧滑返回功能。但是我们都知道可以用dismiss去返回,不过对于大部分用户大大来说并不关心什么模态不模态的,我既然花了学习成本去熟悉你这种侧滑就给返回的交互,你必须给劳资实现。OK,这里给大家介绍一种简单不能再简单的方法,我不是diss在座的各位,我是希望在座的各位大神来diss我,因为我还是个小学森。 正文 首先, ...

白大雨的博客 1642

常用iOS、Mac框架和库及常用中文开发博客

常用iOS、Mac框架和库及常用中文开发博客 目录 UI 下拉刷新模糊效果AutoLayout富文本图表表相关隐藏与显示HUD与Toast对话框其他UI 动画 侧滑与右滑返回手势其他动画 网络相关 网络连接网络测试图像获取网络聊天网络测试WebView Model其他数据库缓存处理PDF图像浏览及处理摄像照相视频音频处理响应式框架消息相关

Bruce__Liu的博客 4567

iOS开发 objective-c

iOS开发之OC

q28292929的博客 2513

iOS开发 非常全的三方库、插件、大牛博客等等

UI下拉刷新EGOTableViewPullRefresh- 最早的下拉刷新控件。SVPullToRefresh- 下拉刷新控件。MJRefresh- 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写)iOS学习加群:727474737  一起学习进步XHRefreshCont...

qq_41842579的博客 3061
上一篇: iOS 开发中常用的一些宏
下一篇: UIEventKit EKCalender EKEventStore EKSource
FirstBloodFB
博客等级 码龄12年 7粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值