草庐IT

material-swift

全部标签

ios - Rx swift : How to create cache for last network response without creating class/struct property?

我正在开发使用IPStackAPI进行地理定位的iOS应用程序。我想通过首先请求外部(公共(public))IP地址来优化IPStackApi的使用,然后在该IP未更改的情况下重新使用lat响应。所以我所追求的是我每次都询问https://www.ipify.org关于外部IP,然后问https://ipstack.com使用给定的IP地址。如果我第二次询问但IP未更改,则重新使用上次响应(或实际缓存的字典,其中IP作为键,响应作为值)。我有一个解决方案,但我对代码中的缓存属性不满意。它是某种状态,代码的其他部分可以改变它。我正在考虑在RxSwfit中使用一些scan()运算符,但我想

ios - Cocoapods:如何使用最新的 Swift 版本创建一个 pod?

我正在学习如何使用Cocoapods创建一个pod,所以我运行了这个命令:podlibcreate{my_pod_name}使用iOS平台、Swift语言,包括我的库中的演示应用程序,不使用任何测试框架或基于View的测试。但是,在打开项目时,我收到警告:ConversiontoSwift4.2isavailable这就是我在build设置中看到的:那么为什么会这样呢?感谢您的帮助! 最佳答案 如果我没有正确理解你的问题,Swift版本由Podspec决定.更详细地说,它看起来像:Pod::Spec.newdo|spec|...sp

ios - 在 Swift 中检测来自 AVSpeech 和 AVUtterance 的正在进行的语音

我知道你可以使用委托(delegate)方法来判断AV语音何时结束extensionMyViewController:AVSpeechSynthesizerDelegate{funcspeechSynthesizer(synthesizer:AVSpeechSynthesizer,didFinishSpeechUtteranceutterance:AVSpeechUtterance){print("speechfinished")}}但您如何判断语音是否正在进行且尚未结束?现在,我开始演讲voice.speak(utt)//dosomething我想在对方说话时在结束之前做点什么。仅仅

ios - Swift iOS - 将数据作为包含自定义模型的自定义模型添加到 Firestore

所以我有两个自定义模型类。一个是Story,另一个是Page。Story包含多个属性,包括一组pages。structStory{varname:Stringvarpages:[Page]vartags:[String]varlikes:[String]varisPrivate:Boolvardictionary:[String:Any]{return["name":name,"pages":pages,"tags":tags,"likes":likes,"isPrivate":isPrivate,]}structPage{letthumbnail:Stringletimage:Str

swift - ARKit 3 People Occlusion 是否仅限于 iPhone X 和更新版本?

我开始研究iOS13上新的PeopleOcclusion效果,所以我下载了sampleproject并尝试在我的设备上编译。在iOS13iPhone7Plus上运行,出现如下错误:2019-09-1113:49:41.257236-0300ARMatteExampleSwift[7298:1369425]MetalGPUFrameCaptureEnabled2019-09-1113:49:41.257845-0300ARMatteExampleSwift[7298:1369425]MetalAPIValidationEnabled2019-09-1113:49:41.589383-03

Swift whit Xcode 递归枚举实现(使用枚举模拟加减乘除复合运算)

//递归枚举值实例enumExpression{//单个数值casenum(param:Int)//表示加法运算将Expression作为相关值参数类型indirectcaseadd(param:Expression,param2:Expression)//表示减法运算将Expression作为相关值参数类型indirectcasesub(param:Expression,param2:Expression)//表示乘法运算将Expression作为相关值参数类型indirectcasemul(param:Expression,param2:Expression)//表示除法运算将Expres

【Swift】公司项目性能优化(一)

  随着项目开发接近了尾声,改Bug和性能优化成了工作的重中之重,移动端开发,最注重用户体验,一个丝滑般的应用程序能在用户心里加很多印象分。  1、优化列表的滑动速度  作为内容创作类的app,里面包含了大量的写作、画作、小说、动态等多种动态高度的样式;列表滑动不卡顿,就成了用户体验的关键问题。  1)Autolayout自动布局比直接计算frame消耗更多的CPU资源,所以在确定内容位置、宽高情况下最好使用frame。  2)使用线程来处理文本、尺寸计算、图片处理等;避免卡顿主线程;  3)对于动态高度的cell,最好能提前计算好,缓存到数据模型中,减少计算高度所浪费的时间;  4)滑动过程

【Swift】拆分小说阅读器功能,分享内部实现

  公司项目结束了,公司估计也快黄了,年底事少,也给了我不少时间来维护博客。  公司的项目是一个类似于简书的创作平台,涵盖写作、小说、插画内容。  本期主要先下小说阅读部分,UI样式仿照的是微信读书样式,因之前也写过小说阅读器,但是代码并没有解耦,这次彻彻底底做一次大改动。   小说用户的常见操作:当前阅读进入记录和书签列表,因公司项目的结构问题,目前新项目并没有做项目进度记录和书签保存功能,以后有优化时候,再补充相关内容。先看下小说的结构。   小说的主要模型ReadModel  小说章节模型classJFChapterModel:NSObject{vartitle:String?varpa

【Swift/Objective-c】公司项目优化(二) - 下拉刷新抖动问题

  使用MJRefresh进行列表下拉刷新时,会出现列表上下颤抖问题  抖动的原因  我们先来看看在手松开之后我们对scrollView做了什么事情:  ScrollViewDidEndDragging => setContentInset:  为了保证在“Loading”的状态下,下拉刷新控件可以展示,我们对contentInset做了修改,增加了inset的top.那这样一步操作为什么会导致scrollView抖动一下呢。  我在scrollViewDidScroll:中打了个断点,来看看在setContentInset:之后发生了什么事情。我设置的inset.top=64;结果发现scr

【Swift】GRDB数据库本地存储聊天记录

  ////DataManager.swift//GRDBDemo////CreatedbyAppleon2021/4/21.//importGRDBstructDataBaseName{///数据库名字staticlettest="conversation.db"}///数据库表名structTableName{staticletmessage="ChatMessage"}///数据库连接classDBManager:NSObject{///数据库路径privatestaticvardbPath:String={//获取工程内容数据库名字letfilePath:String=NSSearch