(转)[IOS] 创建类扩展文件

转自:http://blog.youkuaiyun.com/idoshi201109/article/details/51735461

 

Xcode7 中创建类扩展文件

这边对如何在Xcode7 中创建类扩展文件,做一个补充记录,因为在开发讨论群中还是见到不断的有童鞋在问这样子的问题。记得这是Xcode6开始,类扩展文件的创建更Xcode5以及之前创建的位置改变了。这边我配图说明写下,之前也有关于类扩展的类似文字,具体可以参考我的另外一篇博文。类扩展参考文章

这边还是我这边对NSString的一个扩展NSString+containsString文件。 
扩展之后的功能是,在iOS7上也能使用NSString的containsString方法判断,字符串是否包含某个子串。我们知道NSString的containsString:方法是在iOS8.0 之后的方法,所以在使用containsString的时候,如果系统需要适配到iOS8.0 之前的版本,那么就需要类扩展了。否则就需要对不同的版本进行单独判断。

废话不多说了,首先,我们需要创建类扩展文件。文件命名为:containsString。 
第一步: 
新建文件—>iOS —>Source —>Objective-C File 
1

第二步: 
(1)填写扩展文件命名 
(2)文件类别选择Category 
(3)选择需要扩展的类。 
2

第三步: 
编写代码,扩展自己想要扩展的类方法。

NSString+containsString.h

//
// NSString+containsString.h
// TJJ_NSStringContainsStringDemo
//
// Created by Shixiongwei on 16/1/21.
// Copyright © 2016年 Shixiongwei. All rights reserved.
/*
NSString 的containsString方法,是iOS8 之后的方法。
这个扩展类,是向下兼容 使得iOS8 一下的方法能使用containsString方法。
NSString 的内扩展 containsString方法。
亲测:iOS7.1.1 能用。
*/

“import Foundation/Foundation.h”

@interface NSString (containsString)
- (BOOL)containsString:(NSString *)str NS_AVAILABLE(10_10, 8_0);
@end

 NSString+containsString.m

//
// NSString+containsString.m
// TJJ_NSStringContainsStringDemo
//
// Created by Shixiongwei on 16/1/21.
// Copyright © 2016年 Shixiongwei. All rights reserved.
//

import “NSString+containsString.h”

@implementation NSString (containsString)
- (BOOL)containsString:(NSString *)str NS_AVAILABLE(10_10, 8_0)
{
if ([self rangeOfString:str].location != NSNotFound) {
return YES;
}
return NO;
}
@end

 

第四步: 
效果展示截图 
3

IOS系统类添加扩展文件+全局文件PCH 系统类添加扩展文件 1、command+N新建项目文件,选择Objective-C File 2、File Type 选择 Category       —————————————————————————————————— 全局文件(PCH文件) 1、新建项目文件,选择PCH File 2、选中项目——TARGETS——Build Setting(选中All)——搜索pr... 阅读详情

相关推荐

iOS 8 Action扩展实战教程:文件解压功能开发

本文还有配套的精品资源,点击获取 简介:在iOS 8及更高版本中,Action扩展提供了一种在系统级别为用户提供额外操作的方法。本教程将深入介绍如何开发一个解压ZIP文件的Action扩展,包括创建扩展目标、实现解压逻辑、处理输入数据、UI设计、权限管理和测试发布等关键步骤。通过实战演练,开发者可以学习如何创建实用的Action扩展,增强应用的集成性和用户体验。 ...

weixin_35835018的博客 1194

iOS创建Category类别(扩展类)

我要为UIButton扩展其他系统提供以外的方法,这就要用到扩展类了

wyz670083956的博客 870

iOS-Extension-Demo, 创建 iOS"today" 和"share" 扩展的演示.zip

iOS-Extension-Demo, 创建 iOS"today" 和"share" 扩展的演示 DemoNotes: iOS 8"今天"和"分享"扩展演示。这里项目是如何创建"今天"和"分享"扩展的示例。 存储库中提交的顺序演示了流程中的各个步骤。中央应用程序是一个简单的文本笔记应用程序。 UI仅仅是使用xcode模板的一个项目

「iOS」————分类与扩展

本文介绍了iOS中的分类和扩展,一个是运行期加入,一个是编译器加入。加入时间的不同,以及结构的不同,导致他们不同的作用。同时还讲解了关联对象的使用。

2301_80253909的博客 1123

wps js宏获取工作簿、工作表、单元格的值、链接转图片、单元格区域数据转二维数组、保存工作簿的常用Excel操作

wps js宏入门看这里,我写了常用的js操作Excel的方法:获取工作簿对象、获取工作表对象、获取单元格的值、链接转图片、生成条形码图片、单元格区域数据转二维数组方法、保存工作簿、弹出输入框、YesNo选择框,助你从VBA转战JS。

huaermeier的博客 3万+

OpenVins解析:基于滤波框架的SLAM

这一方式存在的关键问题是匹配耗时很长,对性能影响显著。可以参考ORBSLAM3中的匹配方式来对其优化,比如左右目匹配可以在极线上搜索,前后帧可以利用运动先验投影匹配。理论上加入路标点会提升精度,代价是增加了计算量。着重说下基于描述子的匹配:OpenVins中匹配的方式是robust_match(),里面是调用的opencv的。openvins中不仅仅进行了传统的MSCKF更新(状态向量中不包含路标点),还在。中进行了包含路标点的估计更新。图像帧到来时,利用IMU递推得到的位姿给该图像帧赋初值。

qq_18076309的博客 4074

iOS分类(category),类扩展(extension)—史上最全攻略

本文会带你看懂分类,类扩展和匿名分类的前世今生,从看懂到会用。

Walker的博客 9161

深入解析MTK平台hang_detect机制:从原理到实战调试

本文深入解析了MTK平台hang_detect机制的工作原理与实战调试技巧。作为系统健康监测的核心机制,hang_detect通过多层级监控体系检测应用层和内核层异常,结合Kernel_exception等日志信息快速定位问题。文章详细介绍了典型问题案例、调试方法及预防措施,帮助开发者提升MTK平台系统稳定性调试能力。

purple的博客 1004

iOS创建扩展与发布扩展

在创建扩展之前,你需要创建一个用来包含扩展的常规的app项目。这个包含扩展的app称为containing app。在创建好containing app之后,选择File-->New-->Target菜单,选择一个适当的扩展目标模板。每一个扩展目标模板都包含了与扩展点相关的文件和设置。一个containing app可以包含多个不同类型的扩展。     每一个扩展目标模板包含一个头文件和实现文件

乞力马扎罗的雪CYF的博客 1811

基于aarch64分析kernel源码 六:kernel_init进程(1号进程)、kthreadd进程(2号进程)

kernel_init进程(1号进程)、kthreadd进程(2号进程)分析

OnlyLove_的博客 764

Keil MDK 5.37及之后版本 安装AC5(ARMCC)编译器详细步骤

由于Keil 5.37及之后版本不再默认安装AC5(ARMCC)编译器,这就会导致由AC5编译的工程无法正常编译,往往输出窗口会提示以下信息:*** Target ‘STM32xxxx‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available.

s_Modesto的博客 1万+

iOS进阶之类扩展(Extension)(8)

进阶阶段要求对底层有一定的认识,要对原理有刨根问底的执着精神。要对知识有全面的认识,要对细节以及注意问题有独特的见解。Extension时经常被面试者提到的问题。 Extension 类扩展可以理解为Category的一个特例,可以用来给当前类添加属性和新方法。其名字可为匿名(为空),也可起一个意义相关的名字。并且新添加的方法一定要予以实现. (Category没有这个限制)。 最熟悉的陌生人 其...

沐雨07的专栏 983

机器学习实战5-天气预测系列:利用数据集可视化分析数据,并预测某个城市的天气情况

大家好,我是微学AI,最近天气真的是多变啊,忽冷忽热,今天再次给大家带来天气的话题,机器学习实战5-天气预测系列,我们将探讨一个城市的气象数据集,并利用机器学习来预测该城市的天气状况。该数据集包含年平均温度和湿度等信息。

微学AI的博客 1万+

Xcode7 中创建类扩展文件

Xcode7 中创建类扩展文件 这边对如何在Xcode7 中创建类扩展文件,做一个补充记录,因为在开发讨论群中还是见到不断的有童鞋在问这样子的问题。记得这是Xcode6 开始,类扩展文件的创建更Xcode5以及之前创建的位置改变了。这边我配图说明写下,之前也有关于类扩展的类似文字,具体可以参考我的另外一篇博文。类扩展参考文章 这边还是我这边对NSString的一个扩展NSString+

chenxi506343891的博客 3683

从 0 到 1 打造一个“超级 IP 智能体”

这篇文章介绍了一个"超级IP智能体"的技术架构和实现方案。该项目构建了一个多模态内容生成流水线,主要流程包括:1)视频下载和音频提取;2)语音识别转换为文字稿;3)使用大语言模型对文案进行仿写和润色;4)语音合成;5)数字人口型同步;6)视频后期处理。文章详细介绍了如何使用Python和Hugging Face开源模型搭建环境,并重点展示了视频下载、语音识别(采用Whisper模型)以及文案仿写(使用Qwen1.5-7B-Chat模型)等核心模块的代码实现。所有处理均针对M3芯片Mac优

AI天才研究院 1149

Temporal Noise Reduction(TNR)时序去噪技术解析:原理、平台实践与工程调优路径

随着高画质夜景拍照和高清视频拍摄需求的持续增长,图像传感器在低照度环境下输出信号的噪声问题日益突出。相比空间域降噪(SNR),时序去噪(Temporal Noise Reduction, TNR)利用帧间信息进行融合处理,具备更高的信噪比提升效率及更强的边缘保护能力,已成为移动影像ISP链路中的核心环节。本文系统剖析TNR的算法原理、平台实现机制与工程调试路径,并基于实际开发案例分析其在不同场景下的效果差异及调优方法,为工程师提供从理论到实操的完整路径参考。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 3200

iOS项目开发日常之创建文件(协议、类、分类、扩展)

iOS项目开发过程中,是以不断创建文件的形式进行着的。 创建得比较频繁的文件类型是: 这两个类型中创建的文件有:子类、分类、扩展、协议四种文件,如下: 这四类文件是频繁创建的,我们来看一下各自分别的文件结构。认识下(常见的头文件类型): (一)@interface 类 <协议> 声明一个类 遵守 某协议 (二)@interface 子类...

weixin_30437481的博客 634

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【iOS】类扩展与关联对象

本文分析了类扩展和关联对象的底层原理。类扩展(匿名分类)可在编译时直接给类添加属性和方法,属性会生成带下划线的成员变量及set/get方法,方法会被添加到methodlist中。关联对象通过runtime的objc_setAssociatedObject和objc_getAssociatedObject实现,核心是全局唯一的AssociationsHashMap哈希表,其中包含ObjectAssociationMap来存储键值对。当第一次关联对象时,会设置isa标志位has_assoc=1。分类不能直...

2301_80095702的博客 1288

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

iOS:继承、分类和类扩展

一、继承      继承是指一个新类拥有被继承类(父类)的全部属性和方法。例如,只有继承NSObject,才有创建对象的能力。NSObject是大部分类的基类(根类,root class)。      当A类继承B类,A类就拥有B类中所有成员变量(属性)和方法。这也是继承的主要目的。      使用场景:当我们可以说通B是一个A时,就可以使用B继承A类。      继承的好处:代码重用;继承的缺点...

Yancy的博客 8969

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

iOS中分类(category)和类扩展(Extension)的区别

iOS中分类(category)和类扩展(Extension)的区别 一、分类的定义: 分类是OC中的特有语法,它是表示一个指向分类结构体的指针,它是为了扩展系统类的方法而产生的一种方式。 二、分类的创建 1、首先创建一个项目,然后新建一个Object-C File文件 2、接着到了配置分类信息的界面:因为这里是创建分类,所以选择Categary,Class指的是需要扩展的系统类,file就填写...

same_life的博客 7535

在iOS 10中创建SiriKit扩展

您将要创造的 介绍 自2011年推出Siri以来,iOS开发人员一直在寻求将第三方应用与其集成的可能性。 随着WWDC 2016期间iOS 10的发布,Apple终于向开发人员提供了SiriKit。 哪些类型的应用程序可以利用Siri仍然存在一些限制,但这是朝着正确方向迈出的一步。 让我们来看看Siri可以做什么。 支援网域 要使用SiriKit,您的应用必须位于以下一个或多个域中:...

代码教主 1400

iOS如何创建系统类的扩展类

1. 2. 3. 转载于:https://www.cnblogs.com/ChouDanDan/p/5038266.html

Linux2060的博客 451

iOS类别和类扩展

在iOS中,有一种机制可以使用户在没有远吗的情况下扩展类的功能,但不是通过继承,这就是类别。iOS中没有类似C++中可以定义私有方法和私有变量的关键字,要定义私有方法和私有变量,可以用类扩展来实现。   类别   类别在不需要继承的情况下可以扩展类的功能。但类别不能添加类的属性和私有变量。类别可以用来扩展Cocoa中类的方法,也可以用来扩展用户自己的类中的方法。当我们查看系统头文件的时候能发现

MingGe0107的博客 685

ios类扩展

在.m文件中为类增加私有的成员变量(属性)和方法。 在左侧栏目文件夹处右键-New File-Objective-C File-File Type选extension-Class选你还要扩展的那个类-File填分类名称(不是文件名称)。但通常直接在原类.m文件里写:@interface 原有类名()——这是一个常用的方法,特别是在带xib的控制器页面,一些控件我们通常用类扩展的方式,存在扩展里面,这样使得这些控件成员是私有的,不会被外界干扰到。 与分类不一样的是:类扩展的原类名称后面的括号中没有东西,也

plpldog的博客 436
上一篇: (转)iOS代码实现获得项目名称及版本号(Version/Build)
下一篇: [Android]如何使用RecycleView in Kotlin project
jameskaron
博客等级 码龄20年 31粉丝 663原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值