参考苹果文档点击此处可以查阅苹果对其详细解读。Dispatch通过将工作提交给系统管理的调度队列,在多核硬件上并发执行代码。概述Dispatch,也称为Grand Central Dispatch(GCD),包含语言功能、运行时库和系统增强功能,为支持macOS、iOS、watchOS和tvOS中的多核硬件上的并发代码执行提供了系统的、全面的改进。BSD子系统、Core Foundation和Co
Codable的Encoding和Decoding自定义类型使您的数据类型可编码(encodable)和可解码(decodable),以与外部表示(如JSON)兼容。概述许多编程任务涉及通过网络连接发送数据,将数据保存到磁盘或将数据提交给API和服务。这些任务经常要求数据在传输过程中被编码和解码成中间格式。Swift标准库定义了一种数据编码和解码的标准方法。您通过在自定义类型上实现Encodabl
转载
2024-05-14 16:21:53
141阅读
实现tableview滚动到底部的功能//获得底部的位置
let bottomOffset = CGPoint(x: 0, y: scrollView.contentSize.height-scrollView.bounds.height)
//设置scrollview显示的位置
scrollView.setContentOffset(bottomOffset, animated: true)st
转载
2023-07-28 14:05:53
66阅读
# iOS Swift利用didSet实现观察者模式
作为一名经验丰富的开发者,我将教会你如何使用Swift语言中的`didSet`属性观察器来实现观察者模式。观察者模式是一种对象间的一对多依赖关系,当一个对象的状态发生改变时,它的所有依赖对象都将得到通知并自动更新。在iOS开发中,我们经常会使用观察者模式来实现数据的监听与反馈。
## 观察者模式流程
下面是使用`didSet`实现观察者模
原创
2023-11-11 13:08:43
274阅读
在Swift语言中用了willSet和didSet这两个特性来监视属性的除初始化之外的属性值变化无需说太多,看看下面的代码你就能很快明白的import Foundationclass People : NSObject{ //普通属性 var firstName:String = "" ...
转载
2015-12-22 15:37:00
120阅读
2评论
属性观察者,类似于触发器。用来监视属性的除初始化之外的属性值变化,当属性值发生改变时可以对此作出响应。有如下特点:1,不仅可以在属性值改变后触发didSet,也可以在属性值改变前触发willSet。2,给属性添加观察者必须要声明清楚属性类型,否则编译器报错。3,willSet可以带一个newName...
转载
2015-09-25 14:25:00
148阅读
2评论
属性观察者,类似于触发器。用来监视属性的除初始化之外的属性值变化,当属性值发生改变时可以对此作出响应。有如下特点:1,不仅可以在属性值改变后触发didSet,也可以在属性值改变前触发willSet。2,给属性添加观察者必须要声明清楚属性类型,否则编译器报错。3,willSet可以带一个newName的参数,没有的话,该参数默认命名为newValue。4,didSet可以带一个oldName的参数,
转载
2023-08-23 13:35:25
309阅读
swift数据结构,栈,队列,二叉树,链表
一、栈//
// Stack.swift
// DataStructure
//
// Created by dzq_mac on 2020/8/26.
// Copyright © 2020 dzq_mac. All rights reserved.
//
import Foundation
st
转载
2024-07-05 23:00:33
39阅读
willSet 会在该值被存储之前被调用didSet 会在一个新值被存储后调用如果
原创
2023-03-10 15:25:32
119阅读
大多数的 App 都会有嵌入网页的做法,因此可能就会遇到原生与网页里的交互的场景。交互无非就两种情况,要么是 Objective-C (以下简称 objc ) 调用 Javascript (以下简称 js) 的方法,要么 js 调用原生的方法。考虑到效率和拓展维护,在开发过程中我选择了一个被开发者广泛使用的一个优秀的开源库 WebViewJavascriptBridge 。使用起来也比较简单,但是
转载
2023-10-07 22:32:50
98阅读
(1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序。 (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示。 (3)通过[UIApplicationsharedApplication]可以获得这个单例对象 (4) 一个iOS程序启动后创建的第一个对
转载
2024-02-02 10:55:19
60阅读
-
------------------------------------------------ 很多关于objc 与 js 交互的文章都比较适用于 mac开发,iOS的webview 还是有所不一样, 本文提供了一个很好解决UIWebView内js和objc 交互的思路。 自然,从oc到js,可以使用 stringByEvaluatingJavaScriptFromString: 来实
转载
2023-12-26 21:18:19
97阅读
JavaScriptCore是apple推出的为了解决ios与js交互的框架,功能强大而实用。##JavaScriptCore中主要的类1、JSContext --- 在OC中创建JavaScript运行的上下文环境- (instancetype)init; // 创建JSContext对象,获得JavaScript运行的上下文环境
// 在特定的对象空间上创建JSContext对象,获得Ja
转载
2023-10-19 13:01:15
154阅读
一、初始化UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(40, 40, 120, 44)];
[self.view addSubview:myLabel];
UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(40, 40, 120,
转载
2023-10-11 16:58:19
674阅读
最近在写项目的时候,发现使用alertview和actonsheet会报警告,所以就查了一下,发现ios 9 以后会使用UIAlertController来进行操作, 具体代码如下: 1、声明 2、使用UIalertController创建的时候,只需要把样式边一样就可以了,如下 3、警告框的样式
原创
2023-08-23 13:38:41
147阅读
前言 最近项目中的UIWebView被替换为了WKWebView,因此来总结一下。 示例Demo:WKWebView的使用 本文将从以下几方面介绍WKWebView: 1、WKWebView涉及的一些类 2、WKWebView涉及的代理方法 3、网页内容加载进度条和title的实现 4、JS和OC的
转载
2019-08-13 14:44:00
362阅读
2评论
UIDatePicker *picker = [[UIDatePicker alloc] init]; picker.datePickerMode = UIDatePickerModeDate; picker.locale = [[NSLocale alloc] initWithLocaleIden
转载
2016-05-31 09:59:00
121阅读
2评论
iOS TheRouter 的使用
在这篇博文中,我将详细介绍如何在 iOS 项目中使用 TheRouter。通过合理的结构安排,我们将覆盖环境准备、分步指南、配置详解、验证测试、优化技巧和扩展应用等内容,确保对 TheRouter 的使用过程进行全面的阐述。
## 环境准备
为了顺利使用 TheRouter,我们需要准备相应的软硬件环境。
### 软硬件要求
| 项目
iOS 的 Instruments 使用
iOS 的 Instruments 是一个非常强大的性能分析工具,能够帮助开发者诊断和优化他们的应用。在本文中,我们将一步一步介绍如何有效使用 Instruments 进行性能测试。我们将通过详细的步骤和实用的配置,帮助你在项目中顺利地使用这个工具。
### 环境准备
要开始使用 Instruments,我们需要确保开发环境已正确设置。以下是前置依赖
iOS Stream的使用
在现代iOS开发中,处理数据流和实现异步编程已成为开发者最核心的需求之一。Swift中的`Stream`提供了灵活的方式来处理大量数据的流式传输,因此,深入了解iOS Stream的使用是每个iOS开发者应当掌握的技能。以下是对如何高效使用iOS Stream的系统性总结。
### 环境准备
在开始集成iOS Stream之前,确保你的开发环境与技术栈是兼容的。下