
Swift篇
文章平均质量分 78
H.A.N
Objective-C、Swift、热更新、APICloud跨平台开发、Flutter学习实践指南、性能优化实践指南。GitHub:https://github.com/HanQiGod
展开
-
iOS 对Strong-Weak Dance的思考
在使用 Block 时,除了使用 __weak 修饰符避免循环引用外,还有一点经常容易忘记。苹果把它称为:“Strong-Weak Dance”。问题来源这是一种 强引用 --> 弱引用 --> 强引用 的变换过程。在弄明白为什么要如此大费周章之前,我们首先来看看一般的写法会有什么问题。__weak MyViewController原创 2018-01-25 11:28:36 · 533 阅读 · 0 评论 -
为什么要使用组件化???
什么是组件化? 在看了很多其他的方案之后,首先对组件化思想上有一个小分歧。我认为很多人对于 iOS 中组件化的理解其实是有误区的。我刚工作的第一年就是在做 Flex 开发,其中就有很多组件化的思想,加上最近在用 Vue 做 web 项目之后,更为意识到大家在 iOS 开发上说的组件化有点不合适。 首先我认为组件是一个相对比较小的功能模块,不需要与外界有太多的通信,更不能依赖其他第三方,这一...原创 2019-08-21 14:09:29 · 1691 阅读 · 0 评论 -
iOS 将来 Swift 也许会取代 Python
声明:以下纯属个人观点,如有不同意见,欢迎评论区探讨。感谢检阅 @All Developer,如果你准备研究深度学习,提高自己的能力,个人建议你开始学习 Swift 语言。(因为 Swift 是世界上最好的语言,开玩笑的。原创 2019-07-05 09:12:28 · 432 阅读 · 0 评论 -
iOS 真机测试崩溃 libsystem_kernel.dylib`__abort_with_payload:
出现这个问题因为 plist 文件中没有添加对应的 key 和 value 值导致奔溃。升到iOS10之后,需要设置权限的有:麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风?相机权限: Privacy - Camera Usage Description 是否允许此App使用你的相机?相册权限: Privacy - ...原创 2019-05-30 13:53:25 · 4683 阅读 · 0 评论 -
iOS 通过脚本自动打包 IPA 包
1. 编写Makefile文件.PHONY: clean default: clean device-release: @echo "Building XXXTests Testing App - Device/Release" xcodebuild -scheme XXX -workspace XXX.xcworkspace -configuration Release arch...转载 2019-05-30 13:50:50 · 425 阅读 · 0 评论 -
iOS 直播中粒子效果(Swift版)
粒子效果的应用场景:主播房间右下角粒子动画雪花/下雨/烟花等效果QQ生日快乐一堆表情的跳动常规实现方法(核心代码):import Foundationimport UIKitextension Particleable where Self : UIViewController { func addParticleEffect(_ point : CGPoint = C...原创 2019-04-24 14:24:28 · 647 阅读 · 0 评论 -
iOS Swift 中 DispatchGroup 分组管理异步任务使用
一、DispatchGroup三种用法:1. notify(依赖任务)let group = DispatchGroup() myQueue?.async(group: group, qos: .default, flags: [], execute: { for _ in 0...10 { print("耗时任务一")...原创 2019-04-18 13:47:48 · 1397 阅读 · 0 评论 -
iOS lb: framework not found Pods_Alamofire___ 的解决办法
解决方法:1.项目蓝色图标->Targets->General->Linked Frameworks and Libraries2.删除 Pods.frameworks,剩余有Pods_***.framework原创 2019-04-17 14:21:56 · 3109 阅读 · 0 评论 -
Swift 4.0 中 setValuesForKeys() 无法赋值问题
Swift4.0网络请求数据后,解析json数据,得到模型对象 使用Swift4.0,通过setValuesForKeys保存字典数据,无法存储代码如下:class BaseGameModel: NSObject { // MARK:- 定义属性 var tag_name : String = "" var icon_url : String = "" //...原创 2019-04-12 09:49:41 · 320 阅读 · 0 评论 -
iOS GCD的13 个应用场景
本文不涉及 GCD 的概念和理论,仅记录了 GCD 在一些开发场景下的应用。 嗯,欢迎大家积极留言补充。耗时操作这是应用最广泛的场景,为了避免阻塞主线程,将耗时操作放在子线程处理,然后在主线程使用处理结果。比如读取沙盒中的一些数据,然后将读取的数据展示在 UI,这个场景还有几个细分:执行一个耗时操作后回调主线程/// 主线程需要子线程的处理结果func handle<T>...原创 2018-12-11 17:49:35 · 719 阅读 · 0 评论 -
iOS 官方 Swift API 设计规范
官方地址:API design guidelines核心原则最重要的目标:每个元素都能够准确清晰的表达出它的含义。做出 API 设计、声明后要检查在上下文中是否足够清晰明白。清晰比简洁重要。虽然 swift 代码可以被写得很简短,但是让代码尽量少不是 swift的目标。简洁的代码来源于安全、强大的类型系统和其他一些语言特性减少了不必要的模板代码。而不是主观上写出最少的代码。为每一个声明...原创 2018-10-15 10:00:29 · 599 阅读 · 0 评论 -
iOS 最佳实践:重构AppDelegate
引言可能很多读者可能都有这样的经历,迭代维护多年的系统代码量激增,有些模块的代码自己都觉得丑陋,可是却不敢重构,生怕一不小心被拉取祭天,然后来了个愣头青实习生正好参与这个模块迭代,一顿骚操作后这个模块炸了,那么面对屎山一样焦灼耦合的代码,面对产品汪随着手机壳颜色变化APP主题这种变态需求的时候,如何不在这坨屎山里修修补补,如何重构屎山,让你的代码成为金字塔一样的艺术品?老峰最近读了V8tr写的...翻译 2018-10-12 08:40:09 · 539 阅读 · 0 评论 -
从 OC 到 Swift 的快速入门与专业实践
一、数据Swift 是类型安全的语言:Swift 必须明确数据类型如果取值错误会直接报错Swift 会进行溢出检查 (OC 也会检查)Swift 没有隐式类型转换, 不允许不同类型的数据类型进行运算1.1 简单使用Swift 很接近脚本语言,尤其是在数据类型方面。定义数据类型只允许使用 let 与 var,let 标识的是常量, var 标识的是变量。那么问题来了:那应该...原创 2018-08-24 16:14:12 · 357 阅读 · 0 评论 -
iOS 花式二维码生成和二维码识别(Swift 版)
iOS 原生的二维码识别非常之棒,反正比 ZXing 和 ZBar 效果都好些,所以以后打算尽量用原生的二维码识别,然后最近把原生的二维码生成也顺便做了一遍,并且在原有基础上加了一些样式参数,封了一个小库方便以后使用。项目地址:github.com/EyreFree/EF…EFQRCode 是一个用 Swift 编写的用来生成和识别二维码的库,基于 CoreImage 进行开发转载 2017-12-27 10:20:23 · 1164 阅读 · 0 评论 -
iOS【iOS超轻量级约束框架(Swift4)】SBLayout一行代码搞定任意难度的AutoLayout
SBLayout 一行代码搞定任意难度的AutoLayout简介:SBLayout是基于Swift4 封装系统的约束而成的单文件约束框架,总代码700多行,支持iOS9及其以上版本,一行代码可以搞定任意难度的AutoLayout约束使用方法如下:实例:let redView = UIView()re原创 2018-01-18 15:19:39 · 648 阅读 · 1 评论