草庐IT

swift-modules

全部标签

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

swift 闭包本质,闭包表达式,尾随闭包

1.闭包一个函数和它所捕获的变量/常量环境组合起来,称为闭包一般指定义在函数内部的函数一般它所捕获的是外层函数的局部变量/常量typealiasfn=(Int)->IntfuncgetFn()->fn{ varcount=0 funcsum(_i:Int)->Int{ count+=i returncount } returnsum}varf1=getFn()f1(1)f1(1)f1(1)f1(1)结果:解释:闭包能够使用其外层函数的局部变量,所以函数值能够增加本质:编译器给sum函数外层getFn函数的count属性分配了堆空间,所以count变量不会在getFn函数执行完后销毁,因

VScode导入不同模块下py文件报错ModuleNotFoundError:No module named最有效解决方法

1、用VScode执行代码,即F5执行,或者是在服务器上用Python命令执行,修改地方为:ctrl+P,选择openusersettings:UI,打开设置 然后搜索terminal.integrated.env,点击用json编辑,加上下面这几句:"terminal.integrated.env.osx":{"PYTHONPATH":"${workspaceFolder}/",},"terminal.integrated.env.linux":{"PYTHONPATH":"${workspaceFolder}/",},"terminal.integrated.env.windows":{"

多个项目复用node_modules

多个项目使用的node_modules基本一致,每个项目都安装一遍依赖,对空间造成资源浪费。通过创建软链接的方式,共用一套node_modules。Win解决方案mklink/d[链接文件或目录][原始文件或目录]//举例mklink/dD:\work\project-1\node_modulesD:\work\source-project\node_modulesMac解决方案ln-s[原始文件或目录][链接文件或目录]//举例ln-s/User/source-project/node_modules/User/project-1/node_modules注:管理员身份运行

ios - 如何在 Swift 上使用 RESTKIT 处理来自 JSON 的 Null 映射

当从我的服务器收到包含空值(在JSON响应中)的答案时,RestKit内部映射在处理空值时崩溃。有什么办法可以克服这个问题吗?我曾尝试扩展NSNull以包含“缺失的”方法,但这没有用,而且似乎是错误的。以下是我的映射和目标代码以及restkit输出:对象映射:vartempmapping=RKObjectMapping(forClass:PRLAUser.classForCoder())tempmapping.addAttributeMappingsFromDictionary(["firstName":"firstName","secondName":"lastName","emai

gzip引入后node_modules中.cache compression-webpack-plugin占用内存过多

1.GzipGzip(GNUzip)是一种常见的文件压缩格式和压缩算法,通常用于在Web服务器上对静态资源文件进行压缩,以减小文件大小并加快文件传输速度。在前端开发中,经常会使用Gzip压缩来优化网站的性能。Gzip压缩通过移除文件中的重复数据和不必要的信息来减小文件大小,从而减少网络传输时间。当浏览器请求支持Gzip压缩的资源时,服务器会将这些资源进行压缩,并在响应中添加相应的头部信息表明该资源已经被压缩。浏览器在接收到响应后会解压缩这些资源,并正常加载页面。在前端开发中,常见的静态资源如JavaScript、CSS和字体文件都可以通过Gzip压缩来减小文件大小。大多数现代的Web服务器都支