swift
JackLee18
这个作者很懒,什么都没留下…
展开
-
swift实现遍历嵌套字典并修改其中的值
如果要改变一个字典中的某个键值对应的数组中的元素数量(备注:这个键值的层级不确定),在OC中的话如果键值对应的数组是可变数组,那么我们只用通过递归遍历的形式获取这个可变数组的指针地址,然后增加或者删除元素即可。如果键值对应的数组是不可变数组,那么我们首先需要进行如下的操作。在swift中数组与字典都是值类型,在OC中数组与字典都是引用类型。在swift中数组或者字典增加一个新的元素,那么就会产生一个新的副本,但是在OC中可变数组或者可变字典并没有产生这样的变化。原创 2023-01-28 23:07:37 · 1199 阅读 · 0 评论 -
iOS开发如何限制NSNotification的作用范围
在实际的开发中NSNotification能够很好地解耦代码,跨层传输数据等。但是由于是全局生效的。因此有时候我们不想作用范围那么广,只想局限在某个范围内进行通知的发送与接收。最近弄了一个方案,分享给大家。我这边主要分为两部分进行处理在某个类的范围内生效 在实际的开发过程中,有时候通知的范围只在与某个类的范围内生效,也即只要是这个类创建的对象内都会生效,在app运行期间可能同时存在一个类的多个对象。针对这种情况,我这边将通知的发送,接收和类名进行了关联。这样能够保证通知只在该类相关的范围内生效。原创 2021-09-19 08:25:57 · 266 阅读 · 0 评论 -
iOS开发中NSNotification的便利使用
NSNotification的使用有几个痛点:1)无法自动释放监听;2)重复添加监听没有提示;3)使用不够便利。最近在推动项目中使用swift,将原来的OC代码写了一个swift版本分享给大家。实现原理OC版本主要通过NSObject的分类,动态绑定一个数组,每次添加通知的监听,都会创建一个proxy对象,将这个proxy对象添加到刚才动态添加的数组中。这个proxy是真正的通知的监听者。并且响应处理通知的block,释放的时候会移除监听。能够实现proxy对象释放时,自动移除监听。一个对象被释放原创 2021-09-16 07:48:04 · 351 阅读 · 0 评论 -
iOS开发沙盒管理工具swift版
之前组件化开发的时候,有写过一个OC版本的沙盒文件管理工具,最近将代码整理优化了一个swift版本,整理如下:import Foundationextension String { var `extension`:String { if let index = self.lastIndex(of: ".") { return String(self[index...]) } else { return ""原创 2021-08-27 21:38:54 · 669 阅读 · 0 评论 -
iOS开发之首页弹框管理
做app开发的时候,尤其是对于强运行的产品,在app首页可能会有各种各样的弹框,而且这些弹框种类不同,弹出顺序不同,优先级不同。如果单单是根据if else来判断估计要累死。根据自己的业务需求,我这边做了一个弹框管理类。主要实现功能如下:1,实现弹框的按顺序显示2,实现弹框根据优先级显示3,减少弹框显示的逻辑处理。具体代码如下://// JKAlertManager.swift...原创 2019-07-16 21:33:53 · 1501 阅读 · 0 评论 -
推荐一个动画框架Lottie
Lottie 是个非常出名的动画框架,官网:https://airbnb.design/lottie/UI设计者,做好动画效果后,导出json文件,以及相关的资源文件。用这个框架已经很久了, 之所以现在推荐主要是之前觉得框架很出名,没必要推荐了。由于我的项目最低兼容iOS8,所以一直是OC版本的,最近导入了一个动画效果,发现渐变色效果显示不出来,仔细看了版本记录,发现最新的版本最低兼容iOS...原创 2019-07-05 21:20:12 · 2747 阅读 · 0 评论 -
iOS视频字幕SRT解析工具 JKCaptionsHelper
最近做视频类App,需要给视频添加字幕,做到同步播放,我这边针对这个需求用swift将SRT解析封装成了一个类库:JKCaptionsHelper,对OC和Swift都支持,注:对OC提供部分支持,但可以满足使用。下载地址:https://github.com/xindizhiyin2014/JKCaptionsHelper集成命令:pod 'JKCaptionsHelper'源码如...原创 2019-05-01 08:50:25 · 1765 阅读 · 0 评论 -
iOS多进度条指示工具
最近在做视频类App,需要一个多进度条指示工具,本着不重复劳动,而且可以练习swift的原则,我用swift封装了一个组件库,具体地址如下:https://github.com/xindizhiyin2014/JKSegmentedProgressBar可以使用下面的命令集成:pod 'JKSegmentedProgressBar'具体效果如下:兼容swift和OC,大家用到如果有...原创 2019-05-01 08:41:44 · 639 阅读 · 0 评论 -
iOS使用swift制作定位的pod库
很早的时候就学习swift了,但是一直没有机会去实践,最近swift版本逐渐的稳定下来了,而且swift的语言写起来更加的简洁,加上年前已经用swift写了一个工具app,最近在做项目优化,打算把定位功能封装成一个pod库,由于功能简单,决定用swift语言来写。里面坑点仍然不少,这里做一下分享, 希望大家可以避开这些坑。地图定位JKLocationMananger简介 这个地图pod库...原创 2019-03-23 11:07:36 · 575 阅读 · 0 评论 -
JKRouter路由跳转实现对swift的支持
一直以来都是用Object-C语言来进行项目的开发,中间学过好几次swift都因为没有在项目中实践,慢慢的给忘了。最近工作稍微闲下来了,决定使用swift。刚开始使用就发现JKRouter在swift语言环境下有一些地方需要作出一些小的修改。 已经使用JKRouter的小伙伴可以 `pod update JKRouter` 就可以升级到到最新版本了,没有使用过的,可以到 https://gi...原创 2018-12-25 08:37:26 · 1005 阅读 · 0 评论 -
在项目里交叉使用Swift和OC
转载地址:http://blog.csdn.net/huangchentao/article/details/35278663Swift与OC的兼容性使得你可以在项目里使用Swift+OC的方式编写应用程序,称为混合+匹配(mix and match),用这种方式可以一边使用享受新语言的快速特性,一边无缝的接合你已有的OC代码(原文听起来好NB的样子,其实也就那么回事),不管项目最初是用OC编写的还转载 2016-04-20 10:53:22 · 633 阅读 · 0 评论 -
Swift与Objective-C API的交互
互用性是让 Swift 和 Objective-C 相接合的一种特性,使你能够在一种语言编写的文件中使用另一种语言。当你准备开始把 Swift 融入到你的开发流程中时,你应该懂得如何利用互用性来重新定义并提高你写 Cocoa 应用的方案。互用性很重要的一点就是允许你在写 Swift 代码时使用 Objective-C 的 API 接口。当你导入一个 Objective-C 框架后,你可以使用原生的转载 2016-04-18 17:13:39 · 1249 阅读 · 0 评论 -
swift 简单控件的创建
1,UILabel 刚刚接触swift,代码量不够,文档已经看过了,但是发现写起来还是挺生疏的。从基础练习一下,代码如下: let label:UILabel = UILabel.init(frame:CGRectMake(100, 100, 100, 30)) label.text = "Hi I'm Jack" label.textColor =原创 2016-04-18 16:01:11 · 653 阅读 · 0 评论 -
Swift属性
转载地址:http://c.biancheng.net/cpp/html/2428.html 属性将值跟特定的类、结构或枚举关联。存储属性存储常量或变量作为实例的一部分,计算属性计算(而不是存储)一个值。计算属性可以用于类、结构体和枚举里,存储属性只能用于类和结构体。存储属性和计算属性通常用于特定类型的实例,但是,属性也可以直接用于类型本身,这种属性称为类型属性。另外,还可以定义属性监视器来监控属转载 2016-04-17 11:49:48 · 645 阅读 · 0 评论 -
Swift类和结构体详解
转载地址:http://c.biancheng.net/cpp/html/2427.html 类和结构体是人们构建代码所用的一种通用且灵活的构造体。为了在类和结构体中实现各种功能,我们必须要严格按照对于常量,变量以及函数所规定的语法规则来定义属性和添加方法。与其他编程语言所不同的是,Swift 并不要求你为自定义类和结构去创建独立的接口和实现文件。你所要做的是在一个单一文件中定义一个类或者结构体,转载 2016-04-15 14:45:36 · 698 阅读 · 0 评论 -
swift 枚举详解
参考博客:http://c.biancheng.net/cpp/html/2426.html 参考官方文档:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Enumerations.html#//apple_ref/doc/uid/TP40014097转载 2016-04-14 17:32:50 · 1175 阅读 · 0 评论 -
Swift闭包详解
参考网址:http://c.biancheng.net/cpp/html/2285.html 大家注意哦,由于swift的更新,参考网址里的代码已经不能跑起来了,我结合自己的理解整理如下。 在Swift函数章节中介绍的全局和嵌套函数实际上也是特殊的闭包,闭包采取如下三种形式之一: 全局函数是一个有名字但不会捕获任何值的闭包 嵌套函数是一个有名字并可以捕获其封闭函数域内值的闭包 闭包表达式是转载 2016-04-13 15:41:28 · 1729 阅读 · 0 评论 -
Swift接口和扩展
这里主要说一下swift中的接口,其中类、结构体和枚举都可以实现接口。下面通过代码来分别实现一下//// ViewController.swift// swiftDemo//// Created by Jack on 16/4/6.// Copyright © 2016年 Jack. All rights reserved.//protocol ExampleProtocol {原创 2016-04-12 19:22:52 · 1404 阅读 · 0 评论 -
swift基本知识点的源码
基础的练习代码如下:// print("hello world");// let explictFloat : Float = 4;// print(explictFloat)// let label = "My age is ";// let age = 18;// let labelAge = label原创 2016-04-12 18:37:11 · 752 阅读 · 0 评论