自定义优化KVO.zip
自己尝试实现KVO,更加理解KVO
libclosure-38.tar
查看block源码有助于我们对block更加的理解
Base64Convert.app.zip
base64编解码工具
Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='。
TreeNode.zip
本代码涉及到的有二叉树的遍历以及反转二叉树,希望能够对大家有用,今天也后陆续的上传一些跟算法相关的,希望大家能够多多支持
WKWebViewAndJS(iOS客户端与前端交互)
iOS与前端交互采用了WKWebView .demo 如何做到耦合性
增加代码的复用率
减少重复代码
易维护
可扩展性强
Runtime(统计埋点)
埋点统计的方案
第一步:创建一个Manager来管理埋点
1)里面实现UMSAgent的注册(startWithAppKey:)
2)实现一些业务逻辑的方法(比如,发送事件,页面的统计,h5的统计,等等)
第二步:把eventId用 Config 来进行管理
第三步:Runtime 写一个工具类(区分类方法,和实例方法 例如RunTimeUtil)
第四步:Runtime的method_exchangeImplementations等接口将方法(设为M)的实现互相交换
优点:1.与工程基本解耦,避免引入了“脏代码”
2.维护配置表比维护散落在工程各个角落的代码简单
静态库打包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
iOS 系统三种弹框的封装
三种弹框的封装,一个方法调用三种弹框,分别调用(UIActionSheet,UIAlertController,添加输入框)
防止崩溃的措施
一款提高iOS稳定性,有效防止闪退的框架,那么iOS中会有很多引起crash,比如最常见的数组越界,添加空值。
iOS 安全接口字符串的判断
字符串的一些安全判断,比如,字符串是否为空,长度是否为0,,字符串是否有空格
swift_新手引导页
swift 语言实现通用App安装引导页的实现,其实这个功能和引导页差不多用UIScrollView的contentSize和contentOffset(偏移量)这两个属性
OC-添加新手引导页
iOS OC 语言实现通用App安装引导页的实现,其实这个功能和引导页差不多用UIScrollView的contentSize和contentOffset(偏移量)这两个属性
iOS 滤镜属性
iOS 滤镜属性的小demo做美颜相机需要的小朋友自由下载。
swift写的小项目
使用swift 写的小项目里面有第三方,还有swift许多的语法等等
iOS 真机包11.3
最新12.0系统的xcode资源包,不用升级xcode即可让模拟器运行12.0的系统
地址选择器
ISO 模仿京东地址选择四个的地址选择希望大家都去下载