MVC
模型-视图-控制器(MVC)设计模式
MVC根据角色划分类,涉及到三个角色:
Model:模型保存应用程序的数据。
View:视图是模型的可视化表示以及用户交互的控件。
Controller:控制器是一个协调所有工作的中介者。它访问模型中的数据并在视图中展示它们,同时它们还监听事件和操作数据。
单例设计模式
单例设计模式可以确保对于一个类只有一个实例(对象)存在,这个对象有一个全局的访问点。通常采用懒加载的方式在第一次用到对象的时候才去创建它。
如何创建一个单例:
如:在SortDetailsModelDown.h中声明类方法+(SortDetailsModelDown *)shareSortDetailsModelDown;
在SortDetailsModelDown.m中实现该方法
static SortDetailsModelDown * single = nil;
+(SortDetailsModelDown *)shareSortDetailsModelDown{
@synchronized(self){
if (!single) {
single = [[SortDetailsModelDown alloc]init];
}
}
return single;
}
代理
自定义协议:
代理:遵循协议的对象
第一步:制定协议:(协议名:类名+Delegate)
1 2 3 4 5 6 7 | @class MyView; @protocol MyViewDelegate < NSObject > @required //必须实现的方法 -( void )changeViewBackgroudColor:(MyView *)view; @optional //可选方法 -( void )test; @end |
第二步:制定代理
@interface MyView : UIView 第二步:指定代理 @property (nonatomic,assign)id<MyView> delegate; @end
第三步:代理遵循协议.
第四步:代理实现协议里面的必须实现的方法和其他可选方法.
第五步:委托方通知代理开始执行方法.
观察者
KVO Key-Value Observing.它是一种机制,当指定的对象的属性被修改后,KVO自动通知相应的观察者。
- 注册观察者
[message addObserver:self forKeyPath:kKVOPathKey options:NSKeyValueObservingOptionNew context:Nil];
- 更改主题对象属性的值,即触发发送更改的通知
_message.key = @"asdfasd";
- 在制定的回调函数中,处理收到的更改通知
123456
- (
void
) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(
void
*)context
{
if
([keyPath isEqual:kKVOPathKey] && object == _message) {
NSLog(@
"get %@"
,change);
}
}
- 注销观察者
[_message removeObserver:self forKeyPath:kKVOPathKey];
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探