IOS 代理模型

代理模式在IOS经常使用,在IOS中使用代理模式非常简单。

A类文件(协议)

a.h 中声明协议


@protocol Button <NSObject> // 声明代理协议
- (void) onClick; // 可以代理的方法
- (void) onDown: (UIButton*) event; // 可以代理的方法 
@end@interface a : NSObject
@property(assign, nonatomic) id<a> delegate; // 声明delegate属性
@end

a.m 逻辑文件,内部函数调用方法

- (void) run {[self.delegate onClick];
}
B类文件(实现代理)

b.m 逻辑文件

- (void) viewDidLoad {a* A = [[a alloc] init];a.delegate = self;
}- (void) onClick {NSLog(@"点击了");
}- (void) onDown: (UIButton*) event {NSLog(@" %zd ", event.tag);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563892.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IOS UIView 对象详解

UIView 是所有可以显示在屏幕的对象的父类&#xff0c;是一个矩形的对象 名称类型说明默认值boundsCGRect以自己左上角为原点坐标设置位置和尺寸nilframeCGRect以父级视图点左上角为原点设置位置和尺寸niltagNSInteger当前对象点标识&#xff0c;可以当作idnilconterCGPoint视图…

关于在node.js 中使用formData 发送axios上传文件失败解决方案

最近用到了node.js进行文件上传到其他服务器&#xff0c;在使用formData 上传时候遇到对方接口处理失败问题 问题原因 因为node.js 中 axios 没法识别 Content-Type 设置&#xff0c;所以我们要调用 fromData.getHaders 进行配置 const file readFile(path) const form new…

IOS UIWindow 和 UIScreen

通常UIWindow 与 UIScreen 是配合使用的。当我们想自定义window对象或者获取硬件屏幕大小必定会用到 UIWindow 和 UIScreen UIWindow 一个APP只有一个UIWindow 对象&#xff0c;表示当前窗口对象。UIWindow 继承于 UIView。 通常使用Window 自定义根节点的 UIViewController。…

IOS UIViewController API,生命周期详解

在UIKit框架中只有一个根制图控制器。视图控制器用来管理界面和处理界面的类对象&#xff0c;程序启动前必须创建根视图控制器。所有视图控制器都需要自定义完成&#xff0c;必须继承于UIViewController 实现。xcode新创建的项目默认是通过info.plist 文件配置 main.storyboard…

IOS 定时器 NSTimer

定时器对象,在OC中&#xff0c;定时器对象是NSTimer类型 //ViewController.h #import <UIKit/UIKit> interface ViewController: UIViewController {NSTimer *_timer; // 声明一个定时器对象int _time_num; } //ViewController.m #import "ViewController.h" …

冻结和只读取当前对象的属性,不读取对象原型的属性

Object.entries(obj) Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组&#xff0c;其排列与使用 for…in 循环遍历该对象时返回的顺序一致&#xff08;区别在于 for-in 循环还会枚举原型链中的属性&#xff09;。 const object1 {a: somestring,b: 42 };fo…

IOS UISwitch 组件的使用

UISwtch 在许多场景中会使用到&#xff0c;通常用来坐设置开关等行为。下面我们来看一下IOS 中 UISwitch 等用法。注意&#xff1a;UISwitch 无法通过 frame 设置宽高 UISwitch* _switch [[UISwitch alloc] init];// 设置状态和开启动画[_switch setOn:NO animated:YES];// 设…

IOS 开发 UIProgress 和 UISlidre 进度条和滑动条组件

进度条和滑动条组件非常常见&#xff0c;在ios中进度条组件是无法响应事件的。滑动条可响应事件。但是这两个组件均不可设置高度&#xff0c;可设置x,y,width 进度条属性 名称类型说明默认值progressViewStyleUIProgressViewStyle进度条样式UIProgressViewStyleDefaultprogres…

OC 中数字转字符串和浮点数转整数等转换

浮点数转字符串 float value 0.2; NSString* text [[NSString alloc] initWithFormat:"%f", value];整数转字符串 int value 10; NSString* text [[NSString alloc] initWithFormat:"%d", value];NSInteger 转字符串 NSInteger value 10; NSString…

IOS ActivityIndicator 活动指示器使用

IOS中活动指示器的使用非常简单。 UIActivityIndicatorView* _activity [[UIActivityIndicatorView alloc] init];// 设置位置_activity.frame CGRectMake(180, 100, 80, 80);// 设置菊花样式[_activity setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleLarge];/…

IOS 模态弹窗与操作版使用 UIAlertController

IOS8 以后UIAlertView 改用 UIAlertController 实现模态窗和操作板。UIAlertController 的使用与UIAlerView 非常不同&#xff0c;它实际上是把弹窗内容与显示方式、按钮列表、分离。实现起来非常简单。如下 1.调用静态方法创建弹窗控制器 alertControllerWithTitle 声明弹窗控…

IOS 单行文本输入框 UITextField 使用

UITextField 继承 UIControl 类&#xff0c;只支持单行输入和显示&#xff0c;可输入密码类型。支持实现代理 UITextFieldDelegate 属性 名称类型说明默认值textNSString文本输入值textColorUIColor文本颜色UIFontUIFont文本大小textAlignmentNSTextAlignment文本方向NSLeftTe…

OC 中NSString与NSString 的比较

OC 中 字符串是一个对象&#xff0c;所以不能使用 进行比较是否相等。因为两个字符串的内存地址可能不一样&#xff0c;但是内容一样。所以我们要使用其他方法进行比较运算。 isEqualToString if (["2121" isEqualToString:"2121"]) {NSLog("一致&q…

javascript 对象比较是否属于同一类型对象。

js属于动态类型语言&#xff0c;那么我们如何判断 A实例是否和 b对象实例属于同一类型呢&#xff1f;比如 array array &#xff0c;Error Error&#xff0c;自定义类的实例比较 等等对象类型判断。如果只用 typeof 肯定是不行的。因为不管 array 还是 object、error、或自定…

IOS UIScrollView 滚动视图的使用和文档

UIScrollView 是一个可滚动的视图列表&#xff0c;在app中非常常见。下面简单的介绍一下UIScrollView 的用法。可实现代理UIScrollViewDelegate // 实例化UIScrollViewUIScrollView* _scrollView [[UIScrollView alloc] init];// 获取屏幕大小UIScreen* screen [UIScreen mai…

css 开启硬件加速的系统级控件

css 开启硬件加速的系统级控件 1.h5在真机上有时候会出现滑动白屏问题&#xff0c;可以开启硬件加速系统级控件进行加速滑屏加速 body{-webkit-overflow-scrolling: touch;overflow: scroll; }2.h5开启动画硬件加速 div{transform: translate(0px); }

js 动态创建注释节点 createComment

const comment document.createComment(注释) document.body.appen(commnet)

解决 sessionStroage 无法在多个标签页共享数据的问题

1.改用 cookie 方式存储数据 2.利用 window.addEventListener(‘stroage’) 监听stroage变化事件进行回调共享数据 1.全局监听stroage事件 通过监听localStroage的数据变化进去读取出token值后进行localStroage删除 window.addEventListener(stroage, (e) > {if (e.stora…

PWA 应用提示安装到桌面

当web Service 和 Manifest 被浏览器安装完后&#xff0c;正常情况下&#xff0c;浏览器会提醒用户可将网页安装到桌面。但是通常浏览器都会限制提醒。这时候我们需要手动唤醒浏览器询问用户是否安装到桌面 beforeinstallprompt beforeinstallprompt 事件 window.addEventListe…

javascript 唯一值的集合 Set对象

Set对象允许存储任何类型的唯一值&#xff0c;无论是原始值还是对象引用。可用于数组&#xff0c;集合去重等操作&#xff0c;拥有size属性 const set1 new Set([1, 2, 3, 4, 5,4]);console.log(set1.has(1)); // expected output: trueconsole.log(set1.has(5)); // expected…