OC第七课

iOS LiveCommunicationKit OC 实现 LiveCommunicationKit主要用于优化VoIP通话体验,适用于需要高质量语音通话功能的应用。类似的功能,允许应用程序设置为系统默认通话应用,但与CallKit不同的是,LiveCommunicationKit在锁屏状态下不会全屏弹出,也不会在。因为项目是OC版本的,所以进行了封装实现,目前已经实现OC版本,供大家使用。8.0.56版本就采用了LiveCommunicationKit接口,替换了原先的CallKit框架,以进一步提升语音通话体验‌。中引入的一个新框架,旨在优化。 阅读详情

主要内容:类的扩展

一、NSDate

       NSDate是Cocoa中用于管理日期和时间的基础类,封装了某一给定的时刻(含日期、时间、时区)

       使用+Date方法获取当前时间

              示例:NSDate  *nowDate = [ NSDate  date ] ; / / 获得的是0时区的时间

                         NSLog (@" %@ " , nowDate) ; / / 无论是在哪个时区,打印获得的都是0时区的时间

       NSTimelnterval (即double类型)用以表示以毫秒为单位的时间间隔

       使用  initWithTimelntervalSinceNow : 方法传入一个NSTimelnterval参数,创建一个NSDate对象

              示例:  NSDate  *tomorrowdate = [ [ NSDate  alloc ] initWithTimelntervalSinceNow : 24 * 60 * 60 ] ;

                           NSLog(@"%@" , date) ; / / 打印获取第二天这个点的时间对象

                           NSDage  *yesterdayDate = [ [ NSDate  alloc ] initWithTimelntervalSinceNow : -1 * 60 * 60 ] ;

                           NSLog(@"%@" , yesterdayDate) ; / / 打印获取昨天这个点的时间对象

       获取两个时间段的间隔

                           NSTimelnterval  time = [ tomorrowDate timelntervalSinceDate : yesterdayDate ] ;

                           NSLog (@" %0f " , time) ; / / 打印获取两个时间段的间隔(以秒为单位,若要打印分或者小时,除以60或者3600即可)

二、NSDateFormatter的使用

       NSDateFormatter是iOS中的日期格式类,功能是实现NSString和NSDate之间的互转

       指定日期格式:

               NSDateFormatter  *formatter = [ [ NSDateFormatter  alloc ] init ] ;

               [ formatter  setDateFormat : @"yyyy-MM-dd  HH:mm:ss" ] ;

       注意:指定日期格式时,里面的字母(y、M、d、H、m、s)不能改变,其他的任意改变,若H为小写时,则定义为12小时制(H为24小时制)

       NSDate(时间)  转 NSString (字符串)

       示例:时间转字符串(stringFromDate)

                NSDateFormatter  *formatter = [ [ NSDateFormatter  alloc ] init ] ;  / / 创建日期时间格式类

                [ formatter  setDateFormat : @"yyyy - MM - dd  HH:mm:ss" ] ; / / 自定义时间格式

                NSString  *string = [ formatter  stringFromDate : [ NSDate  date ] ] ; / / 调用方法,定义一个字符串接收

                NSLog(@"%@" , string ) ;  / /  打印输出

               

                时间字符串转换成对应的时间(dateFromString)

                NSDateFormatter  *formatter2 = [ ] NSDateFormatter  alloc ] init ] ; / / 创建日期时间格式类

                [ formatter  setDateFormat : @"yyyy - MM - dd  HH:mm:ss" ] ;  / /  自定义时间格式

                NSString  *string = @"" ;  / /   用字面量格式创建一个时间格式

                NSDate  *date = [ formatter2  dateFromString : string ] ;  / / 调用函数,用一个时间对象接收

                NSLog(@"%@" , date) ; / / 打印时间

                注意:字符串的格式必须与自定义时间格式相同

三、类的扩展

       Category(也叫分类或类目)

       主要作用是:为没有源代码的类添加方法,通过Category添加的方法,会成为原类的一部分,从而达到扩展一个类的功能

       创建Category的步骤:

               新建文件 -> 选择Objective - C  Category模板  ->  填写类名和分类名  ->  . h文件添加文件声明 ->   . m添加文件实现

       创建之后是这个样式:

                / / 声明

               @interface  NSString  (SayHi)

                 - (void) hi ; 

               @end

               / / 实现

               @implementation   NSString (sayHi)

                - (void) hi

                {

                           NSLog(@" Hi , body ") ;

                }

                @end

        注意:1、@interface 后面紧跟的类名表示的是你要给哪个类扩充方法

                   2、(SayHi) 小括号里面的名字表示的是当前类目的名字


        Category与子类的区别


CategorySubclass
功能只能为类添加方法既能为类添加方法,也能添加变量
特点新添加的方法会成为原始类的一部分,能被子类继承新添加的方法,只有子类有,父类不具有
使用使用原始类的实例(如果是 -方法)或者原始类(如果是 +方法)调用方法子类才能调用,如果在项目开发到尾声的时候,使用子类添加了方法,需要对已写代码做类型替换(将父类替换为子类)


          Extension

          主要作用是:管理类的 “ 私有 ” 方法

          面向对象编程也叫面向接口编程,在设计一个类的时候,有些方法需要对外公开(我们成为接口),有些方法仅仅内部使用

          Extension的语法和Category很相似,相当于把Category的 .h 文
件挪到原始类的   .m 文件中

          Extension针对的是自己的类,必须有源代码的类


CategoryExtension
作用为没有源代码的类添加方法管理类的私有方法
格式定义一对  .h 和 .m 文件把代码写到原始类的  .m 文件中



四、协议、代理

       Protocol(协议):iOS开发中常用的技术

       协议是一套标准(一堆方法的声明),只有  .h 文件,就像一张任务清单,清单交给谁,谁就要完成上面的任务

       接收协议的对象实现协议中的定义

       如何定义Protocol(以@protocol开始@end结束)

       示例

               @protocol  Marryprotocol <NSObject>

                      @required  / / 必须遵循的方法

                      - ( void ) makeMoney ;

                      - ( void ) working ;

                      @optional  / / 可以不实现的方法

                      - ( void ) wash ;

                      - ( void ) cook ;

               @end

        注意:1、协议中的方法默认是必须实现的 即 @required

                   2、关键字@optional修饰的方法是可选的,可实现可不实现

        遵循协议分两步:

                1、在类的  .h  文件父类名后面写上 <协议名>

                2、在  .m 文件中实现协议中的方法

五、delegate设计模式(很重要,必须掌握)

       Protocol(协议)使用的核心场景是实现delegate设计模式

       通俗的讲就是:

              自己不想做的,想让别人去实现的时候,就可以指定一个代理,让代理帮你做,你只需要通知代理去做某事

OC—基础语法 一、Objective-C语言简介 Objective-C简称Obj-C或者OC,Objective的意思就是面向对象的。OC其实就是在C语言的基础之上,封装了一层面向对象的语法,他并不是一门全新的编程语言。OC是Mac OS X系统和iOS系统的主要开发编程语言,当然马上要被Swift给替代了,然并卵,我们还是得好好学习OC,因为现在大多数公司还是使用OC来做iOS开发。 二、第一个OC程序... 阅读详情

相关推荐

iOS UMeng OC和Swift混编

设置Objective-C桥接文件导入SDK头文件在UMengDemo-Bridging-Header.h中加入U-Share SDK头文件://导入UMCommon的OC的头文件//导入UShare的OC的头文件//导入UMAnalytics的OC的头文件//导入UMPush的OC的头文件UMengDemo的OC和Swift的切换UMengDemo是用OC的代码编写的,同时也兼容了swift3.0的调用示例(UMengDemo不再对swift2.0做示例兼容).

2501_90230875的博客 1701

Open Catalyst Project数据集全解析:OC20/OC22/OC25有何不同

你是否在催化剂研究中遇到过数据集选择困难?面对OC20、OC22和OC25等多个版本,不知道它们之间的区别和适用场景?本文将详细解析这三个数据集的核心差异、技术特点和应用场景,帮助你快速选择适合自己研究需求的催化剂机器学习数据集。读完本文后,你将能够:区分不同数据集的结构特征、了解它们的技术参数差异、掌握各自的适用场景,并学会如何获取和使用这些数据集。 ## 数据集概述与核心差异 Open C...

gitblog_00055的博客 1626

oc调用swift

OC调用Swift 如果你想在Objective-C工程中,嵌入Swift文件,实现OC调用Swift,那么这篇文章就能帮助你,由于本人最近在开发Swift项目,所以实现过OC调用Swift,在这过程中遇到过一些瓶颈,特此,将此文奉上,供大家参考。 OC调用Swift文件,需要创建桥接头文件,这个文件是当你在OC开发环境中创建Swift文件时由Xcode生成,该桥接头文件的命名是:-B

Xiao_Long_Li的专栏 2137

15、OC与Swift的混编

在使用Swift进行iOS开发的过程中,经常涉及到Swift与OC混编的情况,有时主工程是OC的需要另外编入Swift代码,而有时主工程是Swift的需要另外编入OC代码。这其中涉及到修改一下XCode的工程配置。 1、在同一个工程中的混编 在Swift 5.1中,两种混编的实现步骤: Swift访问OC:只需要在桥接文件(ProductName-Bridging-Header.h)中导入需要暴露给Swift的OC类,即可在Swift中访问相应OC类及方法。 OC访问Swift:在OC类中导入Pro

重楼的博客 3583

多目标跟踪中使用trackeval评估dancetrack运行结果

trackeval使用

qq_46144849的博客 1783

江科大笔记—OLED调试工具

OLED介绍及调试工具

m0_62005595的博客 657

[科普] GLONASS现代化:新民用CDMA信号L1OC、L2OC与L3OC详解

俄罗斯GLONASS系统正通过引入新一代民用CDMA信号实现现代化升级。目前已部署L3OC信号(1202.025 MHz),采用BPSK(10)调制和I/Q正交复用结构,提供宽带宽和高精度;部分卫星已测试播发L2OC信号(1248.060 MHz),形成双频优势;计划中的L1OC信号(1600.995 MHz)将采用BOC(1,1)调制。这些新信号显著提升了系统性能,改善了与其他GNSS系统的兼容性,为高精度应用提供支持。随着GLONASS-K2等新一代卫星的发射,系统将实现从FDMA到CDMA的全面转型。

极客不孤独的博客 1611

【ESP32 S3 开发】基于I2S协议驱动INMP441数字麦克风 实现语音采集

注意INMP441的 L/R接地之后才稳定输出数据 否则一直都是0WAV格式说明这里主要是想说wav文件重要的就是生成一个wavhead来标识它是一个wave文件,wave文件的data chunk 中的data部分还是PCM编码格式的数据,直接从I2S读进去就可以,不需要压缩。wav文件的头一般由4个chunk组成。 以16bit深度为例,代码如下。其他深度可以根据注释自行计算。 I2S -> DAC i2s_read()函数,向flash中划分的一个buff当中读入byte数组。以16bit深度为例,一

m0_43395703的博客 1万+

OC 基础入门

OC 语法基础 OC 的语法知识其实有蛮多,以下知识基础的一部分. 目录部分: 文章目录 @ 符号 在 OC 语言中,绝大部分的关键字使用的@符号开头。记住这是一个规则就好了。 字符串 在 Java 中字符串和 C 语言中字符串定义的方式是一样的。 但是在 OC 中的字符串的定义是需要添加 @ 的,在OC 中字符串类型使用的是 NSString ,相对而言添加一个 NS 前缀。 Java: "Android" "Java" OC: @"OC" @"iOS" //比如定...

秋天的博客 2807

电子电器架构 -- 汽车零部件DV试验与PV试验的定义及关键差异

电子电器架构 -- 汽车零部件DV试验与PV试验的定义及关键差异

Soly_kun的博客 733

什么是 SAP S/4HANA 的 Brown Field 迁移和 Green Field 迁移

Brown Field实施涉及升级现有的 SAP 环境并继续使用一些遗留组件。它类似于传统升级,因为它涉及软件更新、一些数据转换和一些业务流程的调整。它仍然具有破坏性,但比Green Field实施要少得多。如果你是风险厌恶者,倾向于逐步使用 S/4HANA 的功能,或担心 S/4HANA Green Field方法的成本,那么你可能更喜欢这种方法。混合方法结合了Brown Field和Green Field迁移的一些元素。它从公司的 SAP 系统的副本开始,包括配置设置和定制。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1322

OC和Swift混编相互调用

现在咱们就一起学习下 OC和Swift混编,如何实现呢? 首先创建一个OC项目 这里不在做详细解释,直接进入 打开项目; 一 、添加swift 文件 (只要是混编 无论是在oc项目中添加swift文件 ,还是swift项目中添加oc文件) 会提示添加一个桥文件 名字为oc_swift-Bridging-Header.h下面都用这个名字(如图) 这个时候 我们只需要点击确定即可; 这个桥文件是用来添加 swift使用oc的时候导入头文件使用的 扩充 — 这个文件oc_swift-Bridging-Head

哈皮吖的博客 5468

[xboard-real6410]39 real6410中的BL1和BL2实验及流程分析

文章目录uboot控制uboot 流程uboot加载kernel uboot控制 uboot 流程 uboot加载kernel

鹰之翔 298

iOS JS与OC交互

iOS JS与OC交互 1、UIWebView 与 JS 交互 UIWebView 在 iOS12 中已经被废弃,同时WKWebView在iOS8中已经出现。所以无特殊情况的话,我们一般应该也是用不到前者了! UIWebView 初始化: self.webView = [[UIWebView alloc] initWithFrame:self.view.bounds]; self.webView.delegate = self; [self.view addSubview:self.

kangpp的博客 2978

HFSS实战项目——GPS北斗双模微带天线

本文设计了一款方形圆极化微带天线应用于北斗B1和GPSL1频段,满足高增益、低VSWR、适当方向图等要求。设计中心频率为1568MHz,介质板采用厚度h=1.6mm的Arlon AD450(tm)板,相对介电常数为4.5,采用探针馈电。

2401_87464239的博客 1767

海康VisionMaster与西门子PLC1200进行S7通信

通信是连通算法平台和外部设备的重要渠道,在海康VisionMaster算法平台中既支持外部数据的读入也支持数据的写出,当通信构建起来以后既可以把软件处理结果发送给外界,又可以通过外界发送字符来触发相机拍照或者软件运行。 本文以西门子PLC1200作为外部设备为例,讲解海康VisionMaster与西门子PLC1200进行S7通信。......

haier123888的博客 1万+

IOS 07 Swift调用OC源码及OC第三方框架

创建SwiftUseOCTest项目,是一个Swift语言的项目;再创建一个OC类文件,里面有静态方法,实例方法,字段等;然后在Swift项目中调用OC类;像OC类的复杂宏,在Swift类中是无法调用。

sziitjin的博客 1831

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

oc怎么添加win引导_OC透明贴图

写在前面透明贴图在C4D中经常会用到,比如在物体上贴个图形,如下图所示,这个在默认渲染器中操作比较简单,切换到OC中,有的小伙伴会有些懵圈,所以写了这篇文章(使用OC3.07),希望对大家有所帮助,笔芯。OC中实现透明贴图,涉及到图像纹理节点,下面先梳理相关的知识。OC节点编辑器OC中一个个节点可以看成一个个暗盒,它有两类端口,左侧输入端:输入指令,右侧输出端:输出结果,输入端可有多...

weixin_39834488的博客 2820

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

催化剂数据集终极指南:OC20/OC22/OC25深度对比与实战应用

面对催化剂机器学习研究中众多的数据集选择,你是否感到困惑?OC20、OC22、OC25这三个核心数据集各有侧重,选择错误可能让你的研究事倍功半。本文将为你提供从基础认知到深度应用的完整解决方案。 ### 数据集速查表:快速定位你的需求 | 应用场景 | 推荐数据集 | 核心优势 | 技术门槛 | |---------|------------|----------|----------| |

gitblog_00457的博客 1122

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

OC-NSArray与NSMutableArray

Objective-C中的集合类(NSArray、NSSet、NSDictionary)是用于存储和管理多个对象的工具类。

2501_91546205的博客 1433

OC- OC数值类型、NSNumber、NSString、NSMutableString

今天我们主要讲oc的数据类型,说起数据类型,大家可能会想到C语言的数据类型,如:int ,float……,当然我们的OC也有数据类型。那OC的数据类型是怎么分的呢? OC数据类型 我们在OC阶段通常叫数值类型。 oc的数值类型主要分为两种:typedef类型和对象类型;以常用数据类型为例,C和OC数值类型的对比如下: 结构体类型 NSPoint… 我们先看看typedefy的结构体类型,

gaoya7305的博客 2994

oc引导win方法_小白今天教你如何点一点鼠标就能生成适配你机型的oc引导

这段话只有帅的人才能看见没错,你很帅!觉得文章不错的可以置顶公众号 经常有兄弟问我,能不能帮他把clover引导弄成oc引导,他愿意付钱,但是小白都婉拒了,因为小白对oc并不熟悉,小白重点都放在clover上,最后搞砸了就不太好了,而且小白不会赚粉丝的钱,小白是免费给粉丝配clvoer,有些因为人数太多,回复不过来,就疏忽了! 但是也不能忽略了想要用oc的弟兄们呀!鉴于这种场...

weixin_34006342的博客 4557

WKWebView OC与JS交互

文章目录WKWebView OC与JS交互1. OC调用JS2. JS调用OC3. 总结 WKWebView OC与JS交互 整体上看原理还是挺简单的,即OC端向JS中注入JS脚本或者注入一个事件对象,生成一个时间handeler,当JS触发此事件时,handler处理事件的回调用,实现相互传值和事件交互的效果。 1. OC调用JS OC调用JS方法主要是通过执行javaScript脚本来实现的。 WKWebKit提供的主要方法是:- (void)evaluateJavaScript:(NSString *

竹毛言己 5952

Open Catalyst Project完全攻略:OC20/OC22/OC25技术演进与实战选择指南

你是否正在催化剂机器学习研究中为数据集选择而苦恼?面对Open Catalyst Project推出的OC20、OC22和OC25三个版本,不知道哪个最适合你的研究需求?本文将带你深入解析这三个数据集的技术演进路线、核心特性差异和实战应用场景,帮助你做出明智的选择决策。 ## 从实验室到工业应用:数据集的演进路线 Open Catalyst Project的数据集发展呈现出一条清晰的技术演进路

gitblog_00072的博客 1104

OC渲染器渐变怎么用?

《C4D百科全书》>>《C4D的十万个为什么》 有简单的初级知识,也有深度经验分享。 问题: OC中渐变颜色的实现 答案: 在C4D中,颜色的渐变效果经常会用到,有的小伙伴可能会对OC中渐变效果的使用感到困惑,这次就说下OC中渐变的实现方法。 OC渲染器中有2个节点可以调整渐变,分别是C4D渐变节点和OC渐变节点,下面举例分别说明,目的是实现示例中的对象渐变方向为Y轴,渐变效果为蓝色到紫色的渐变效果。 一、C4D渐变节点 01、在节点编辑器中新建C4D渐变节点,赋予给材质的漫射通

苦七君 9187
上一篇: OC第六课
下一篇: OC第八课
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值