自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Z1591090的博客

iOS swift

  • 博客(11)
  • 资源 (17)
  • 收藏
  • 关注

原创 iOSApp版本升级时数据库FMDB升级

1.数据库为什么升级?当我们对已经建立好的数据库进行修改(添加字段)用户单纯的升级app用到这个字段必须升级,升级,升级!!!2.为什么我们将版本信息放入数据库而不使用UserDefaults快速存储呢?原因是你需要考虑到当你的app有不同的用户登录时,UserDefaults是所有数据共享的,你不能根据不同的用户来处理他的信息判段他的信息是否需要更新...

2019-05-16 11:33:03 2651 1

原创 iOS开发数据库《六》篇—FMDB源码解析

一、FMDB源码结构我们可以从结构上看出FMDB在共有5个文件组成,其中FMDB.h用于管理其他5个文件,下面分别讲述5个文件的用处(1)FMDatabase:代表一个单独的SQLite操作实例,数据库通过它增删改查操作;(2)FMResultSet:代表查询后的结果集;(3)FMDatabaseQueue:代表串行队列,对多线程操作提供了支持;(4)FMDatabaseAdditio...

2019-05-07 19:50:05 1372 1

原创 iOS开发数据库《五》篇—FMDB简单介绍以及高级使用

一、简单说明1.什么是FMDBFMDB是iOS平台的SQLite数据库框架FMDB以OC的方式封装了SQLite的C语言API2.FMDB的优点使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码对比苹果自带的Core Data框架,更加轻量级和灵活提供了多线程安全的数据库操作方法,有效地防止数据混乱3.FMDB的github地址https://github.com/ccgus...

2019-05-07 16:05:14 1524

原创 Ios Keychain《二》的三种使用方法

demo下载上一篇介绍了Keychain的基本内容接下来介绍三种的使用keychain的使用这里总结keychain三个使用方法,分别是苹果官方的KeychainItemWrapper第三方封装sskeychain通过Security.framework框架使用这三个方法我最推崇的是使用sskeychain这个封装的方案,更加简单方便,下载和使用地址在后面,现在开始说下每一个方法...

2019-05-30 20:32:58 3873

原创 ios报错:Multiple commands produce Info.plist

报错信息如下图:原因:项目plist文件重名,存在多个重名的plist文件。除了自己的其他三方的,引入的重名plist。解决方法:在项目中搜索"Info.plist"文件,除了我们自己项目的Info.plist文件,一律删除。不让Xcode把项目中我们自己的Info.plist文件当作资源文件进行统一管理。操作就是,在Build Phases --> Copy Bundle r...

2019-05-27 17:48:52 3942

原创 iOS Keychain《一》使用和封装

iOS keychain 是一个相对独立的空间,保存到keychain钥匙串中的信息不会因为卸载/重装app而丢失, 。相对于NSUserDefaults、plist文件保存等一般方式,keychain保存更为安全。所以我们会用keyChain保存一些私密信息,比如密码、证书、设备唯一码(把获取到用户设备的唯一ID 存到keychain 里面这样卸载或重装之后还可以获取到id,保证了一个设备一个I...

2019-05-22 14:50:06 2475

原创 iOS AppDelegate轻量化,组件化

为什么AppDelegate轻量化,组件化?Appdelegate功能我们有太多的业务需要监听生命周期,比如第三方初始化SDK,文件的管理,推送消息,前后台切花,定位,等等。如果我们把Appdelegate很多职责能够拆分到各个模块中去这样我们的Appdelegate更加维护和管理。分模块加载AppDelegate方法基于上述考虑,我们可以采用一种分模块加载的方式加载所有AppDelega...

2019-05-21 15:52:12 1582

原创 iOS之"performSelector may cause a leak because its selector is unknown"警告原因及其解决办法

1.问题项目中使用到了从字符串创建选择器,编译时发现警告:“performSelector may cause a leak because its selector is unknown”(因为performSelector的选择器未知可能会引起泄漏)2.原因在ARC模式下,运行时需要知道如何处理你正在调用的方法的返回值。这个返回值可以是任意值,如 void , int , char , ...

2019-05-17 15:56:58 2868

原创 iOS 使用FMDB事务批量更新数据库

ios中FMDB在写入本地大量数据的时候为了减少耗时操作的解决方案?当我们需要插入十几万的数据时对于表的操作我们属于耗时操作,解决数量大的耗时操作我们就使用事物事务事务的理解在数据库中在数据库操作中,所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。例如,在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或整个程序。  事务和...

2019-05-17 11:19:09 2108

原创 【iOS问题】The file “XXX.app” couldn’t be opened because you don’t have permission to view it.

当引入第三方的框架的时候 容易产生以下问题:The file “XXX.app” couldn’t be opened because you don’t have permission to view it.如图:造成的原因:info文件中的字段Executable file 与 build settings栏中的Packaging中的Product Name 不一致就会导致上述截图的...

2019-05-13 11:05:03 787

原创 An error was encountered while attempting to communicate with this device. (The service is invalid.)

An error was encountered while attempting to communicate with this device. (The service is invalid.) 报错手机安装应用的时候遇到一个报错:An error was encountered while attempting to communicate with this device. 当时很懵逼...

2019-05-08 15:55:19 2173

LessonRuntime-main.zip

可以运行起来的源代码

2021-08-25

自定义优化KVO.zip

自己尝试实现KVO,更加理解KVO

2021-08-02

libclosure-38.tar

查看block源码有助于我们对block更加的理解

2021-07-22

Base64Convert.app.zip

base64编解码工具 Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='。

2020-01-07

TreeNode.zip

本代码涉及到的有二叉树的遍历以及反转二叉树,希望能够对大家有用,今天也后陆续的上传一些跟算法相关的,希望大家能够多多支持

2019-12-25

WKWebViewAndJS(iOS客户端与前端交互)

iOS与前端交互采用了WKWebView .demo 如何做到耦合性 增加代码的复用率 减少重复代码 易维护 可扩展性强

2019-04-28

Runtime(统计埋点)

埋点统计的方案 第一步:创建一个Manager来管理埋点 1)里面实现UMSAgent的注册(startWithAppKey:) 2)实现一些业务逻辑的方法(比如,发送事件,页面的统计,h5的统计,等等) 第二步:把eventId用 Config 来进行管理 第三步:Runtime 写一个工具类(区分类方法,和实例方法 例如RunTimeUtil) 第四步:Runtime的method_exchangeImplementations等接口将方法(设为M)的实现互相交换 优点:1.与工程基本解耦,避免引入了“脏代码” 2.维护配置表比维护散落在工程各个角落的代码简单

2019-03-28

静态库打包shellcmd 文件

iOS 静态库自动打包,使用 shellcmd 脚本如何写 # 获取脚本所在目录 filepath=$(cd "$(dirname "$0")"; pwd)"/" cd $filepath cd .. # 工程target,主要配置这个target即可 targetname="SafeToolSDK" # 工程目录(默认工程目录在脚本目录的上一级目录) projectdir=$(pwd)"/" echo $projectdir # 工程名 projectname="SafeToolSDK.xcodeproj" # lib输出目录 buildDir=$filepath echo $buildDir #lib输出名 libname=$targetname iossdknum=$(xcodebuild -showsdks | grep iphoneos | grep -Eo '[0-9.]+' | sed -n '1p') configurationname="Release" mydir=$filepath$libname"/" rm -rf $mydir mkdir $mydir # arm64 archname="arm64" lib64=$libname"64" echo "archname:$archname" xcodebuild -project $projectdir$projectname -configuration $configurationname -target $targetname -sdk "iphoneos$iossdknum" -arch $archname BUILD_DIR=$buildDir clean xcodebuild -project $projectdir$projectname -configuration $configurationname -target $targetname -sdk "iphoneos$iossdknum" -arch $archname BUILD_DIR=$buildDir libpath=$buildDir"/Release-iphoneos/"$libname".framework" lib64path=$mydir$lib64 mv -f $libpath"/"$libname $lib64path # armv7 archname="armv7" libv7=$libname"v7" echo "archname:$archname" xcodebuild -project $projectdir$projectname -configuration $configurationname -target $targetname -sdk "iphoneos$iossdknum" -arch $archname BUILD_DIR=$buildDir clean xcodebuild -project $projectdir$projectname -configuration $configurationname -target $targetname -sdk "iphoneos$iossdknum" -arch $archname BUILD_DIR=$buildDir libpath=$buildDir"/Release-iphoneos/"$libname".framework" libv7path=$mydir$libv7 mv -f $libpath"/"$libname $libv7path # armv7s archname="armv7s" libv7s=$libname"v7s" echo "archname:$archname" xcodebuild -project $projectdir$projectname -configuration $configurationname -target $targetname -sdk "iphoneos$iossdknum" -arch $archname BUILD_DIR=$buildDir clean xcodebuild -project $projectdir$projectname -configuration $configurationname -target $targetname -sdk "iphoneos$iossdknum" -arch $archname BUILD_DIR=$buildDir libpath=$buildDir"/Release-iphoneos/"$libname".framework" lib

2019-03-22

iOS 系统三种弹框的封装

三种弹框的封装,一个方法调用三种弹框,分别调用(UIActionSheet,UIAlertController,添加输入框)

2019-03-08

防止崩溃的措施

一款提高iOS稳定性,有效防止闪退的框架,那么iOS中会有很多引起crash,比如最常见的数组越界,添加空值。

2019-03-05

iOS 安全接口字符串的判断

字符串的一些安全判断,比如,字符串是否为空,长度是否为0,,字符串是否有空格

2018-12-30

swift_新手引导页

swift 语言实现通用App安装引导页的实现,其实这个功能和引导页差不多用UIScrollView的contentSize和contentOffset(偏移量)这两个属性

2018-10-19

OC-添加新手引导页

iOS OC 语言实现通用App安装引导页的实现,其实这个功能和引导页差不多用UIScrollView的contentSize和contentOffset(偏移量)这两个属性

2018-10-19

iOS 滤镜属性

iOS 滤镜属性的小demo做美颜相机需要的小朋友自由下载。

2018-07-27

swift写的小项目

使用swift 写的小项目里面有第三方,还有swift许多的语法等等

2018-07-27

iOS 真机包11.3

最新12.0系统的xcode资源包,不用升级xcode即可让模拟器运行12.0的系统

2018-07-20

地址选择器

ISO 模仿京东地址选择四个的地址选择希望大家都去下载

2017-12-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除