
swift
文章平均质量分 52
天方夜歌
iOS php
展开
-
Swift5.0 闭包的定义和使用
闭包定义 一个函数和它所捕获的变量\常量环境组合起来,称为闭包 1、一般指定义在函数内部的函数 2、一般它捕获的是外层函数的局部变量\常量 3、可以把闭包想象成是一个类的实例对象 4、内存在堆空间 5、捕获的局部变量、常量就是对象的成员 6、组成闭包的函数就是类内部定义的方法一般形式例子//一般形式//有参有反let testOne: (String, String) -&...原创 2020-11-13 11:40:44 · 824 阅读 · 0 评论 -
Flutter initState只执行一次的方法IndexedStack
前言:力求写出像源码一样流畅的跨平台技术前端有一个很大的特点,就是不断的刷新,消耗性能,跨平台技术继承了这一特点,因此我们需要去掉这一点方法一:AutomaticKeepAliveClientMixin (经小萌测试这个方案不可行,可能是版本的问题)方法二:IndexedStack(层叠小组件经小萌测试可行)IndexedStack( index: currentIndex, children: [ RecommendHome原创 2020-10-29 10:57:42 · 2072 阅读 · 0 评论 -
苹果授权登录绑定手机号被拒绝
问题1悲剧原因:描述:5. 1.1 Legal: Privacy - Data Collection and StorageGuideline 5.1.1 - Legal - Privacy - Data Collection and StorageWe noticed that your app requires users to register with personal information that is not directly relevant to your app’s .原创 2020-09-04 18:50:56 · 3229 阅读 · 0 评论 -
iOS中堆和栈的使用(Swift)
堆和栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。堆:队列优先,先进先出(FIFO—first in first out)。栈:先进后出(FILO—First-In/Last-Out)。堆栈空间分配1.栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量等值。其操作方式类似于数据结构中的栈。2.堆区(heap):一般由程序员分配释放,若程序员不释放,则可能会引起内存泄漏。其类似于链表。堆栈缓存方式iOS 中应用程序.转载 2020-07-31 10:22:15 · 1301 阅读 · 0 评论 -
OpenGL ES中图片的解压缩到渲染过程
一、了解CPU和GPU CPU(Central Processing Unit)中央处理器,主要用于软件层面的计算。 GPU (Graphics Processing Unit)图形处理器,主要用来处理图形图像的,是硬件层面计算,GPU处理屏幕渲染的任务会更高效。 OpenGL ES 是OpenGL的一个简化版本,用于二维/三维数据的可视化,是一种开放标准图形库,提供丰富的图形绘制API,并直接使用底层硬件 (GPU) 处理图形命令二、图像从文件到屏幕过程上图是...原创 2020-07-08 16:42:23 · 548 阅读 · 0 评论 -
Swift5 不是循环的双链表
小萌毕业5年了,一直在做移动端的工作,OC和Swift,最近比较流行的就是Swift了,学习过OC和Swift的基本原理,听的云里雾里的,听了好几遍才理解,因此下定决心要学习数据结构,学习之后发现数据结构和算法不愧是开发人员必学的知识双链表是java底层封装的数组,想必是有原因的,但是小萌的主要语言是OC和Swift,下面就用Swift语言双链表的方法实现数组的基本接口基本原理网上有很多,就不多说了,核心就是比单链表多了个prev,也就是上一个节点的指向,根据这一个特点设计数组的基本接口im.原创 2020-05-21 15:43:03 · 259 阅读 · 0 评论 -
Swift5中的存储属性和计算属性以及属性观察器
Swift 属性将值跟特定的类、结构或枚举关联。属性可分为存储属性和计算属性:存储属性计算属性存储常量或变量作为实例的一部分计算(而不是存储)一个值用于类和结构体用于类、结构体和枚举存储属性和计算属性通常用于特定类型的实例。属性也可以直接用于类型本身,这种属性称为类型属性。另外,还可以定义属性观察器来监控属性值的变化,以此来触发一个自定义的操作。属性观察器可以添加到自己写的存储属性上,也可以添加到从父类继承的属性上。一、存储属性简单来说,一个存储属性就是存.原创 2020-05-19 15:45:56 · 741 阅读 · 0 评论 -
Swift5 值类型与引用类型探究
在Swift中结构体和类最大的区别就是结构体是值类型,类是引用类型。今天我们探究一下值类型和引用类型一、类型表值类型表结构体枚举元组(tuple)基本类型(Int,Double,Bool等)集合(Array, String, Dictionary, Set)引用类型表类闭包二、存放区域在 Swift 中, 值类型,存放在栈区\color{red}{值类型,存放在栈区}值类型,存放在栈区;引用类型,存放在堆区\color{red}{引用类型,存放在堆区}引用类型,存放在堆区.原创 2020-05-19 15:23:17 · 386 阅读 · 0 评论 -
Swift5.X版本StoreKit原生内购
内购是移动端一值在讨论的话题,每次上架内购功能要做好被拒的准备,小萌在2年前也做过内购,是OC版本,回想那段往事一把血泪呀,被拒了无数次才把内购功能送上AppStore小萌之前的OC内购,中间也经历了不少的困难,详情请看苹果内购审核那些被拒的原因,不过之前是用OC封装的,现在小萌的主要语言是Swift,闲暇之余做了Swift5.X内购StoreKit原生的封装,特别齐全,可以直接使用哦Swift版StoreKit的内购Demo语言: Swift5Xcode: 11.4.1环境: Mac CataL原创 2020-05-13 10:32:12 · 3787 阅读 · 0 评论 -
百度移动统计热力图和事件分析的坑
埋点是这2年比较火的一项技术,友盟、极光推送、腾讯云、百度移动统计都相继开发了增加埋点的SDK,方便开发者使用。其中最为先进的是百度移动统计的无埋点技术 无埋点技术是不用开发者手动埋点的一项技术,很方便使用...原创 2020-05-07 11:44:11 · 2752 阅读 · 0 评论 -
上传AppStore 报错 ERRPR ITMS-90700
小萌在解决乱七八糟的警告的时候,加入了Background Modes,然后就报了上述错误把这个去掉之后重新打包,然后就顺利上线了原创 2020-04-30 14:01:35 · 857 阅读 · 0 评论 -
swift 类型判断 Dictory Array
一 、类型的判断1、is 的介绍Swift 中类型的判断的关键词是is。is操作用来判断某一个对象是否是某一个特定的类,它会返回一个bool类型的值。2、 is的使用方法1> is 的一般判断(Swift 系统也会自动判断)// 类型的一般判断方法let NetWStr = "NetWork小贱"/** 判断NetWStr 是否是 “字符串” */if N...原创 2020-03-12 10:44:46 · 1812 阅读 · 0 评论 -
AVRoutePickerView 和 MPVolumeView 投屏
最近小萌的项目有投屏的需求,开始使用的是保利威的SDK,但是保利威的SDK不管iOS或者Android都是只支持乐播投屏,但是我们项目的需求是AirPlay投屏 在我查找很多资料的过程中发现AVRoutePickerView和MPVolumeView都是支持投屏,但是AVRoutePickerView支持iOS11以上的系统,iOS11一下的系统只能用MPVolumeView来...原创 2020-01-15 10:53:47 · 4659 阅读 · 0 评论 -
出现error: RPC failed; curl 18 transfer closed with outstanding read data remain问题
小萌买了一台新电脑用于做iOS开发,需要配置新的CocoaPods第三方和开放平台管理工具,也出现了新的问题error: RPC failed; curl 18 transfer closed with outstanding read data remaining fatal: The remote end hung up unexpectedly fatal: early EO...原创 2019-12-04 17:01:16 · 15724 阅读 · 0 评论 -
Swift桥接云通讯IM--腾讯云 导入SDK
云通讯IM–腾讯云 导入SDK以ImSDK.framework为例设置云通讯的SDK导入之后再Embedded Binaries中再次导入工程中因为是OC写的,所以要使用到swift-OC桥接,参考文章http://blog.youkuaiyun.com/sun_cui_hua/article/details/78343810头文件加入方法: #import <ImS...原创 2017-10-26 16:56:08 · 2295 阅读 · 1 评论 -
Swift桥接OC Objective-OC Bridging Header
自己动手创建桥接文件的方法: 第一步:创建Header File.h文件,如图所示:第二步:点击下一步命名Swift-OC,然后点击create第三步:搜索bridg,显示如图所示:第四步:把Swift-OC.h文件拖到那个方框里,如图所示第五步:介于我们很有可能会改变路径,因此把 /Users/gongzhiying/Desktop/myCodeSwift/ZhiBoSwift/ZhiBoSw原创 2017-10-25 17:15:05 · 3534 阅读 · 0 评论 -
单例 OC与Swift
参考1:http://www.cocoachina.com/ios/20160713/17017.html?ref=myread 参考2:http://www.jianshu.com/p/4867dc92337e一. 单例模式简介单例模式的作用 可以保证在程序运行过程,一个类只有一个实例,而且该实例易于供外界访问 从而方便地控制了实例个数,并节约系统资源单例模式的使用场合 在整个应用程序原创 2017-11-10 15:48:39 · 524 阅读 · 0 评论 -
Swift 4.0 中的 open,public,internal,fileprivate,private
在Swift3.0中,访问修饰符有五种,分别为open,public,internal,fileprivate,private。 其中 fileprivate和open是Swift 3.0新添加的。由于过去 Swift对于访问权限的控制,不是基于类的,而是基于文件的。这样会有问题,所以Swift 3新增了两个修饰符对原来的private、public进行细分。1、private pri原创 2017-09-18 17:43:44 · 12336 阅读 · 0 评论 -
swift4.0中UIView的frame的扩展封装
扩展就是向一个已有的类、结构体或枚举类型添加新功能(functionality)。这包括在没有权限获取原始源代码的情况下扩展类型的能力(即逆向建模)。扩展和 Objective-C 中的分类(categories)类似。(不过与Objective-C不同的是,Swift 的扩展没有名字。)Swift 中的扩展可以:添加计算型属性和计算静态属性定义实例方法和类型方法定义下标 定义和使用原创 2017-09-19 15:15:02 · 1548 阅读 · 0 评论 -
swift4.0自定义UITabBarController +UINavigationController
首先开始项目之前我们需要搭建框架,首选UITabBarController +UINavigationController,下面的代码是整理好的,包括我们会遇到的问题解决方法都在里面自定义UINavigationControllerclass NavController: UINavigationController { //MARK: - 初始化 override func vie原创 2017-09-18 17:23:54 · 4946 阅读 · 0 评论 -
swift4.0 项目中的随机校验码(验证码)
在开发中注册的时候移动端要求我们获取随机校码完整代码class CodeView: UIView { var changeString:String? //验证码的字符串 let kLineCount = 6 let kLineWidth = CGFloat(2.0) let kCharCount = 4 let kFontSize = UIFont.syst原创 2017-09-26 10:21:38 · 1849 阅读 · 0 评论 -
swift4.0 Any 和 AnyObject
转载:http://swifter.tips/any-anyobject/ Any 和 AnyObject 是 Swift 中两个妥协的产物,也是很让人迷惑的概念。在 Swift 官方编程指南中指出 AnyObject 可以代表任何 class 类型的实例 Any 可以表示任意类型,甚至包括方法 (func) 类型先来说说 AnyObject 吧。写过 Objective-C 的读者可转载 2017-09-26 15:12:52 · 1781 阅读 · 0 评论 -
学习swift的资料
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html#//apple_ref/doc/uid/TP40014097-CH8-ID105学习swift最好的资料,不太好找,英文版,更新速度跟得上,第一时间了解sw原创 2017-09-26 15:40:46 · 291 阅读 · 0 评论 -
Swift4.0 guard,Array,Dictionary
guard的使用guard是Swift新增语法.guard语句必须带有else语句当条件表达式为true时候跳过else语句中的内容,执行语句组内容;条件表达式为false时候执行else语句中的内容,跳转语句一般是return、break、continue和throwguard 条件 else { //条件语句 break}代码...例:var age = 18func原创 2017-09-26 15:49:16 · 2341 阅读 · 0 评论 -
OC语言中的标记#pragma mark 在swift中标记方法
在2017年9月14号入职新的公司,新的公司开发语言使用的是Swift,此时使用的swift语言是3.0,因此博客的swift语言的整理是基于swift3.0的,本博客持续更新。在OC语言中我们通常使用 #pragma mark - 来注释函数,但是在swift中是行不通的,在swift 中我们使用其他的方法来标注。在swift中有三种方法注释函数//MARK: //FIXME: //TODO:原创 2017-09-18 16:58:48 · 1020 阅读 · 0 评论 -
Swift4.0 一般提示框和网络提示框
在开发过程中提示框是必不可少的,有很多人可能选择GitHub上开源的,现在Swift开源的提示框不是很多,不一定是我想要的,因此我自己写的完整代码import UIKitclass CustView: UIView { //活动指示器 var activity:UIActivityIndicatorView! //添加一个透明的View var activityVie原创 2017-09-28 16:35:20 · 2563 阅读 · 0 评论 -
swift4.0 从相册中获取图片和拍照
第一步添加协议UIImagePickerControllerDelegate,UINavigationControllerDelegate第二步添加选择方式let sexActionSheet = UIAlertController.init(title: nil, message: nil, preferredStyle: .actionSheet) weak var weakSel原创 2017-09-27 15:08:20 · 4916 阅读 · 0 评论 -
Swift4.0 — 属性
一、类的定义Swift与Objective-C定义类的区别 Objective-C:一般需要2个文件,1个.h声明文件和1个.m实现文件 Swift:只需要1个.swift文件 Swift中类的定义格式1 class 类名 {2 // ... 属性和方法3 }二、属性1.什么是属性 Swift中的属性(Properties),就类似于其他面向对象语言中的成员变量2.属性的分类按原创 2017-09-28 16:24:14 · 1149 阅读 · 0 评论 -
Swift4.0--Photos框架的使用附从相簿中获取图片
首先发布Demo链接 Photos从相簿中获取图片效果展示 (一) Photos简介 在iOS 8之前,开发者只能用 AssetsLibrary 框架访问的用户的照片库。几年以来,相机应用和照片应用发生了显著的变化,增加了许多新特性,包括按时刻来组织照片的方式。但与此同时,AssetsLibrary 框架却没有跟上步伐。 随着 iOS 8 的到来,苹果给我们提供了一个现代化的框架原创 2017-10-13 16:38:17 · 3077 阅读 · 0 评论 -
Swift之继承、构造过程
转自:http://www.jianshu.com/p/6bfa966e4185继承在Swift中 ,类可以调用和访问超类的方法,属性和下标脚本,并且可以重写这些方法,属性和下标脚本来优化或修改它们的行为。Swift会检查你的重写定义在超类中是否有匹配的定义,保证重写的正确性。可以为类继承来的任何属性添加属性观察器,属性改变会被通知。基类不继承于其他类的类,称之为基类。//定义一个基类class转载 2017-10-20 11:06:06 · 488 阅读 · 0 评论 -
Swift5.0 WKWebView中的JS交互
好的团队离不开大家的默契合作,在开发中经常遇到H5和移动端合作的业务,在开发中JS交互是非常常见的,小萌现在的主打语言是Swift,所以封装一下Swift版的JS交互原创 2020-05-13 11:15:22 · 3226 阅读 · 0 评论 -
UITextView的PlaceholderTextView封装Swift4.0
在开发中根据业务逻辑的需求我们需要封装很多控件来提高开发效率,开发效果import UIKitclass PlaceholderTextView: UITextView , UITextViewDelegate{ var placeholder : String? var placeholderFont : UIFont? var placeholderColor : UIC原创 2017-09-25 12:00:00 · 1429 阅读 · 0 评论