OC学习之路(10) - 设计模式

oc中的工厂设计模式 OC中的工厂设计模式 拿NSString类为例,NSString类中本身定义的方法只有两三个(length等),但是为什么我们使用NSString对象的时候能调用如此多的方法? 这里就要引入分类的概念,我们随便调用一个NSString类方法,command进入其定义文件查看,发现这个方法会位于类似 @interface NSString (NSStringExtensionMetho 阅读详情

(一)类之间的通讯方式(数据传递)

代理设计模式

一对一

一个类只能委托一个对象去完成一件事情

KVO(监听)

一对多

一个类可以监听多个类

单例模式

公共

所有类共用这个对象

通知中心

一对多

一个对象可以通知多个对象

(二)单例模式

User.m代码如下:

@implementation User

static User *user = nil;         //定义静态的变量,保证对象在程序生命周期中不被销毁

+ (instancetype)shareUser{

    if(!user) {               //创建一个实例对象,当为nil时再创建否则返回原来的值,从而保证始终是同一个实例对象

        user = [[User alloc]init];

    }

    return user;

}

//覆盖allocWithZone: 避免使用alloc创建新的实例对象

+ (instancetype)allocWithZone:(struct _NSZone *)zone{

    if(!user) {

        user = [superallocWithZone:zone];

    }

    return user;

}

//覆盖copyWithZone: 避免使用copy复制出新的实例对象

- (id)copyWithZone:(NSZone *)zone{

    return user;

}

@end

 

Ø  alloc方法:开辟空间

Ø  init方法:对创建出来的父类对象属性初始化,以及当前对象的属性进行初始化

(三)通知中心

Ø  当一个类发送一个消息/通知,则其他监听了这个通知的类,会触发其设定的方法,从而执行设定的方法进行处理

Ø  通知中心的使用

//发送通知

NSDictionary *dic =@{@"1":@"哥哥",@"2":@"姐姐"};

[[NSNotificationCenterdefaultCenter] postNotificationName:@"登陆消息"object:@"登陆成功" userInfo:dic];

//监听通知

[[NSNotificationCenterdefaultCenter] addObserver:self selector:@selector(pay:) name:@"登陆消息" object:nil];

//通知处理方法

- (void)pay:(NSNotification*)notification{

   NSLog(@"%@  %@",notification.name, notification.object);

}

//移除通知

- (void)dealloc{

   [[NSNotificationCenterdefaultCenter] removeObserver:self];    //移除所有通知

   [[NSNotificationCenter defaultCenter] removeObserver:selfforKeyPath:@"登录消息"];//移除指定名称的通知

}

iOS开发深度指南:OC与Swift编程技术及应用 OC是一种多范式的编程语言,结合了面向对象编程和面向切片编程的特性。它是在C语言基础上,引入了Smalltalk风格的消息传递机制。OC广泛应用于苹果生态系统,是早期iOS应用开发的核心语言。在开发过程中,开发者经常会遇到需要创建自定义布局控件的场景。自定义控件布局通常涉及到继承UIView,并重写其布局方法,如,以便在运行时根据子视图的需求动态调整布局。// 在这里添加自定义布局代码// 例如,调整子视图的位置和大小等在上述例子中, 阅读详情

相关推荐

Windows: 深入剖析pip install SSLError与SSL模块缺失的根源及系统级修复

本文深入分析Windows系统下pip install SSLError与SSL模块缺失的根本原因,提供系统级修复方案。从Python安装包缺失SSL支持、OpenSSL库冲突到环境变量配置问题,详细讲解四大成因及对应的解决方案,包括重新安装Python、手动修复OpenSSL依赖等实用技巧,帮助开发者彻底解决HTTPS连接问题。

weixin_28595749的博客 459

iOS开发教程之OC语言

Objective-C是扩充C的面向对象编程语言,iOS开发是用的Objective-C语言,本专题更系统的讲解Objective-C语言当中的一些要点,类的封装、基本数据结构(NSString、NSData)、继承、内存管理(retain点语法、MyArray、AutoreleasePool、浅拷贝详述、深拷贝详述)等内容。

【知识点总结】电路原理 第一讲

大家好,从今天起,我将开始更新自上大学以来所学到的各种知识,之所以选择更新它们是因为最近我一直在收拾整理自己自上大学以来所收获到的各种知识,看着那厚厚一沓的书本心里不由得犯愁。如果我想找到特定的知识,那岂不是得翻到猴年马月。俗话说得好,下雨天打鞋子,闲着也是闲着,为此我设置一个专栏,将知识点一一分类总结,目的在于更好的整理所学的知识。本人学艺不精,有一些知识点地方可能存在瑕疵,希望各位大佬可以多多指教。以下是本篇文章正文内容虚断:一般通用性运算放大器的正反向输入端之间的电阻非常非常的大。

weixin_51130221的博客 4万+

IOS App入门开发进阶 第一课 OC语言基础学习

首先  谈一个话题,什么是IOS开发   什么是Objeive-C

404 Team 1721

SiamRPN++实战:如何用深度孪生网络提升无人机目标跟踪精度(附代码)

本文深入探讨了如何利用SiamRPN++深度孪生网络构建适用于无人机平台的高精度、轻量化单目标跟踪系统。文章详细解析了其兼顾精度与效率的核心原理,并提供了从PyTorch模型轻量化、骨干网络替换到TensorRT部署及应对遮挡、光照突变等实际挑战的完整工程实践指南与代码示例。

weixin_29047545的博客 370

蓝牙Channel Sounding为真正的距离感知赋能

1:工作原理蓝牙™信道探测使用两种经过验证的测距方法——PBR(PBR)和RTT(RTT),实现蓝牙设备之间的安全精密测距。

weixin_43720159的博客 807

OC---IOS开发入门学习(一)

​ objactice-c简称obj-c或者OC。是基于 C 语言的、面向对象的编程语言。他将C语言中复杂繁琐的语法封装的更为简单。代码源文件通常以 .m 扩展名命名(c/c++为.c/.cpp)。m为message代表OC中的消息机制​用于开发 iOS 和 macOS 应用程序。OC完全兼容C语言。类的定义写在源文件中,主要分为两个部分1.类的声明@inteface 类名 :父类名 // NSObject是根类//属性写这里/*方法声明写这里方法声明语法:无参数:- (返回值类型)方法名;

yb941693493的博客 3584

Windows 11 + AMD 780M 运行 ComfyUI 完整指南:DirectML 实战方案

ComfyUI 是基于 PyTorch 的 Stable Diffusion 可视化工作流工具,其性能高度依赖 GPU 后端支持。在 Windows 平台,传统 CUDA 方案仅适配 NVIDIA 显卡,而 AMD 核显用户长期面临 ROCm 兼容性差、驱动链路断裂等系统级障碍。DirectML 作为微软原生机器学习 API,绕过 ROCm 生态断层,直接对接 DirectX 12 硬件抽象层,成为 RDNA 3 架构(如 Radeon 780M)在 Windows 11 上运行 AI 绘画的最优解。它提供

weixin_30099989的博客 731

IOS object-c基础

第一讲:OC简介及基本语法 Objective-C简称OC是在C语言的基础上,增加了一层最小的面向对象语法,完全兼容C语言,也就是可以在OC代码中混入C语言代码,甚至是C++代码。可以使用OC开发Mac OS X平台和IOS平台的应用程序。简单的介绍了一下OC,下面我们来看看OC的基本语法,学习OC之前我们先学习了C语言,因为OC是在C语言的基础上的一门开发语言,因此OC的很多基本语法跟使用方法跟...

u013728021的博客 942

YOLOv11改进 | 网络结构代码逐行解析(一) | 项目目录构造分析

Hello,大家好这次给大家带来的不是改进,是整个YOLOv11项目的分析整个系列大概会更新5-7篇左右的文章从项目的目录到每一个功能代码的都会进行详细的讲解,下面开始进行YOLOv11逐行解析的第一篇——项目目录构造分析开头之前顺便给大家推荐一下我的专栏,本专栏更新上百余篇YOLOv11改进机制手把手教你添加到网络结构中,同时针对拿到模型不知道如何修改,不知道如何发表论文的读者进行针对性的文章介绍,本专栏质量分平均分96分,内容质量完全有所保证。

Snu77的博客 1万+

SWC_RTE01-AutoSAR架构【AutoSAR架构设计概述】

1 基于AutoSAR架构的概述 1.1架构层面:功能可以细分子功能,各个子功能需要交互。 -大功能可以通过Autosar组件Composition去表示; -各个子功能一般具有不可分割性,可以通过Autosar原子组件Component去表示; -各个子功能的交互可以通过接口去通信和交互; -各个子功能的行为可以通过内部行为去表示;具体表现为Runnable的设计;架构设计的时候不考虑具体的逻辑实现;只会关注Ruannble的触发事件或周期;数据访问的一致性问题;具体逻辑设计可通过模版c文件实现或通过基于

8452

iOS开发之OC入门(OC类的基础知识)

内存中的五大区域 栈:存储局部变量,局部变量作用域执行完会被立即回收 堆:程序员手动申请的字节空间 malloc calloc realloc BSS段:存储未被初始化的全局变量和静态变量,初始化后回收并转到数据段中 数据段(常量区):存储已经被初始化的全局 静态变量 常量数据,程序结束回收 代码段:存储代码,程序结束回收 栈、BSS段、数据段、代码段存储在他们中的数据回收,是由系统自动完成 分配在堆区中的OC对象是肯定需要被回收的,需要内存管理 类的定义 类的声明:类名需要大写开头,属性开头下划线

weixin_46926959的博客 1634

SpringBoot 教程:SpringBoot多种方式实现静态Html页面跳转

本教程介绍了 Spring Boot 中实现静态 Html 页面跳转的常用方法,包括重定向跳转、直接返回 ModelAndView 对象以及使用 Thymeleaf 模板引擎。如果你的项目中使用了 Thymeleaf 模板引擎,那么可以利用它来实现静态页面的跳转。对于静态的 Html 页面,我们可以使用多种方式来实现跳转功能。重定向是一种常见的页面跳转方式,它通过发送 HTTP 重定向响应头来告知浏览器跳转到指定的页面。在 Spring Boot 中,我们可以将视图名称设置为静态页面的路径。

2301_79325657的博客 2448

5.4 iOS开发视频教程—OC中代理设计模式

核心内容: OC中代理的设计模式。 5.4 【无限互联】iOS开发视频教程—OC中代理设计模式:http://www.tudou.com/programs/view/QzPDKxKhdR4/ 百度云网盘视频下载地址:http://pan.baidu.com/share/link?shareid=74971&uk=1711799154

无限互联@彪哥 4085

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IDEA的使用指南

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

【OC】OC语言学习 —— 重点内容总结与拓展(上)

有三个注意点。

2402_86720949的博客 1321

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

OC中代理设计模式

代理设计模式中@Protocol的基本概念及用法

echo_dunag的博客 523

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

用OC代码认识设计模式(一) 创建型模式

参考: iOS设计模式四部曲(一):创建型模式 内附Demo 大话设计模式之oc实现23种模式 风中独思--设计模式 <简书 — 刘小壮> http://www.jianshu.com/p/750b82fa6a62 用OC代码认识设计模式(一)--创建型模式 用OC代码认识设计模式(二)--结构型模式 用OC代码认识设计模式(三)--行为型模式 用OC代码认识六大设计原则 MVC、...

weixin_34026484的博客 213

oc--单例设计模式

单例设计模式 背景:为什么产生了单例设计模式? 在我们开发的过程当中,有些类功能是一样的,但是我们在使用的时候,我们每次都会先实例化类获的类的对象,然后通过类的对象实现我们想要的功能. 但在,这样做没有什么大不了的,但是既然每次功能都是一样的,为什么又要浪费那么多的内存空间呢?每次创建一个类的对象就会占用部分空间,而且如果我们需要对对象进行一些基本的设计的时候,每次创建一...

bailinshu8989的博客 210

OC学习篇之---单例模式

OC学习篇之---单例模式

hgfujffg的博客 289

OC学习日记014-单例模式和委托模式

设计模式(用来解决某一特定问题的): 观察者模式|单例模式|委托模式|工厂模式单例模式:什么时候使用单例模式? 在一个工程中,一些类只需要一个实例变量的时候,我们就可以将这些类设计成单例模式 单例模式的作用? 当一个‘类A’被设计成单例模式时,由‘类A’构造出的实例对象至于其他类来讲为全局实例对象,即在每一个类中由‘A’构造出的实例对象,都为相同的对象。 单例模式的实现思路:一个类只能创建一个实

wjojo238的博客 507

OC设计模式浅析

OC设计模式(代理模式) (1)OC中采用设计模式,可以降低代码的耦合性(类之间的相互依赖性),改变一个类对其他类无影响。 (2)声明类的属性     @property (nonatomic,retain) id 对象        //采用id指向任何对象类型,不能用对象类名     @property (nonatomic,retain) 对象类 *对象    //这种声明不遵循设计

shenjian870723的博客 1249

OC 模式指的是什么模式呀?应该如何理解呢?

作为“原创角色”,OC则是指不属于现有知识产权的角色,是由在线人员创建的。在Objective-C或类似的面向对象语言中,常用的设计模式包括但不限于单例模式、工厂模式、观察者模式、适配器模式等。然而,需要注意的是,OC本身并不直接代表一种特定的设计模式,而是可能指代在该语言或平台上实现的各种设计模式。超频是指将一个电子配件的时脉速度提升至高于厂方所定的速度运作,从而提升性能的方法。在社交媒体、论坛、游戏社区等场合,人们经常使用OC来标记自己的原创作品或角色,以表明其独特性和原创性。

怀揣梦想,一颗执着于技术的心从未磨灭,内心住着一颗顽强的小强时刻提醒自己层层突破自我,同时也成就他人 1571

oc中的设计模式

oc中的设计模式有 首先单例模式:在程序运行过程中初始化,并且单例的初始化只执行一次,其生命周期为单例对象初始化开始到程序结束

FL_14的BLOG 985

OC学习----设计模式

设计模式设计模式是用来解决编程某些特写问题.单例模式什么时候使用单例模式?在一个工程中,有一些类只需要一个实例变量.我们就可以将这些类设计成单例模式.单例模式的作用?当一个类 A 被设计成单例模式时,由 A 构造出的实例对象相比于其它类来讲,其为全局实例对象.即在每一个类中由 A 构造出的实例对象,都为相同对象.在OC中如何将一个类设计成单例模式?1.在要被设计成单例的类的 .h 文件中声明一个构造

Carmen小新的博客 803

OC宏定义实现单例设计模式

单例设计模式是在开发中经常可以看到的一种设计模式,不管是在 Cocoa Touch框架还是我们自己的业务逻辑中都可以看到它的身影。 1、首先解答一个问题,什么是单例设计模式呢?      它可以保证在我们的 App 里面某个类创建出来的对象有且仅有一个。 2、其次为什么要使用单例设计模式,直接创建对象不行么?   1)这个要从单例设计模式的作用说起,在手持设备当中,内存的使用很多情

专注学习物联网 1260
上一篇: OC学习之路(9) - 谓词/KVC/KVO
下一篇: .NET进阶之路 - API封装
returningprodigal
博客等级 码龄12年 53粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值