iOS开发
文章平均质量分 54
时光息怒
GitHub地址:https://github.com/MyJus
展开
-
记录一个iOS代码混淆工具
https://gitee.com/zfj1128/ZFJObsLib_dmg原创 2020-07-15 16:19:21 · 423 阅读 · 0 评论 -
每周一道算法浅析(寻找子字符串)
题:判断一个字符串是否包含另一个字符串(寻找下标、寻找包涵几个子串等)看到问题首先想到循环一下就解决了,循环比对没问题bool test1(char *contentChars, char *itemChars) { bool searchSucc = false; int searchCount = 0; for (int i = 0; i < strlen(contentChars); i ++) { for (int j = i; j <原创 2020-07-01 15:26:13 · 139 阅读 · 0 评论 -
iOS缓存浅析
#了解NSDictionary和NSCache的区别,延伸到SDWebImageCahce和YYCache(个人倾向YYCache)NSDictionary和NSCache最大的区别是:1、NSCache线程安全的(内部使用互斥锁实现)2、NSCache会自动释放内部数据(收到内存警告会立即释放)3、NSCache的key不必遵守NSCopy协议4、NSCache内部未使用NSFoundation已有类,使用的是libcache.dylib。所以自己实现简单的缓存策略,在NSDict...原创 2020-06-04 16:32:09 · 223 阅读 · 0 评论 -
UIScrollView原理
这里有个概念 光栅化 和 组合 ,简单理解:光栅化 : 简单的说就是产生一组绘图指令并且生成一张图片(注意,这些图片并没有被绘制到屏幕上去;它们被自己的视图保持着留到下一个步骤用)组合 : 光栅化之后,屏幕其实是空的,你什么都看不见,但是其实视图已经出现的了,这个时候这些图片便被一个接一个的绘制,并产生一个屏幕大小的图片,这便是组合, 这个时候,屏幕上就能看到你描绘的转载 2017-03-21 13:59:11 · 312 阅读 · 0 评论 -
view和layer的区别
view和layer最主要的区别是view可以处理事件,layer不可以view处理事物,layer渲染界面每一个view都有一个layer属性,该属性的类型是CALayer,它是管理着view界面的绘制,而这个view是layer的delegate。view依赖于layer来绘制界面,当然很多的属性view都是直接返回layer的,比如frame是直接返回的layer的frame,而原创 2017-03-21 13:00:54 · 1834 阅读 · 0 评论 -
RunLoop优化加载大量图片的卡顿问题
经典问题:在tableView的cell上加载高清大图,tableView上有很多这样的cell,也就是说 页面展示的时候,要展示大量高清大图。普通的写法会造成刷新UI耗费大量时间,使主线程阻塞。给用户直观的体验就是页面卡顿所以这里为了解决这个问题,使用runloop,在runloop进入等待之前的这段空闲时间刷新UI,这样做会使刷新UI的时机稍微向后挪了一点时间,但卡顿问题也不会有原创 2017-02-10 11:46:32 · 6159 阅读 · 13 评论 -
高仿支付宝首页
闲着没事写了一个支付宝首页动画的demo,用oc 写的,没自己写swift,想用swift的可以自己去改写一下。没多少代码,很好写有什么问题,可以联系我 共同商量,感觉好记的给我点赞啊原创 2017-02-06 17:09:15 · 1873 阅读 · 0 评论 -
iOS上线版本9.3以下系统,使用很短时间崩溃问题
先介绍一下现象,开发环境 Xcode8.x真机测试 怎么测都没问题,打包导出ipa文件 安装 也没有问题。但是只要是上线的版本,iOS9.3以下的版本,使用很短时间 必定崩溃。使用收集错误的看到的日志也发现不了原因。看着这日志,很莫名其妙。后来想到Xcode7.x的版本,上传构建版本的时候会报 不允许 16位P3图片的问题,那Xcode8.x 的没有报这个问题,是工程没有原创 2017-07-19 14:07:37 · 636 阅读 · 0 评论 -
iOS tableView展示最下面一个cell
之前找了一些展示最下面一个cell ,动画效果设为YES 会有滑动效果,设为 NO 会跳一下,非常的不舒服所以,我找了另一条路,让他不跳,不滑,出来的时候就是展示最后一条,好了直接上代码- (void)reloadAfterMessage:(BOOL)show { dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)原创 2016-11-15 16:43:45 · 2149 阅读 · 0 评论 -
重写navigationBar返回按钮,打包安装 pushViewcontroller崩溃问题
重写navigationBar的返回按钮后,在iOS11崩溃,11以下没有问题。这里的重写主要是 写了返回按钮文本的偏移量,大体上的代码是这样:[[UIBarButtonItemappearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(-100,0) forBarMetrics:UIBarMetricsDefau原创 2017-11-09 15:58:00 · 385 阅读 · 0 评论 -
iOS 集成OCR
项目里要加一个OCR识别身份证图片,当时没理解,就在网上找了个利用Video扫描识别身份证的。识别率挺高,识别效果挺好的,地址是 https://github.com/iosWellLin/OCR。这个demo 真心不错,识别速度快,识别汉字几乎没有乱码,但是和我们的需求不符合,我们要的是识别图片。我就想,如果把这个改造一下,既让它扫描 也让它拍照,拍照后还能截取我在屏幕上画的指定区域的截图,原创 2016-09-07 09:04:16 · 6953 阅读 · 1 评论 -
iOS ShareEXtension 分享扩展的简单使用
UDTAndShareExtension是我写的一个demo,主要是将分享信息传入container App。这里只说一下注意点吧, 自定义分享界面需要修改分享target的info里面的信息。删掉NSExtension下的storyboard键值对,新增NSExtensionPrincipalClass键,值是自定义的分享界面。另外,在分享多张图片的时候,发现内存占用过大。又使用了重绘和有损压缩...原创 2018-06-07 14:41:39 · 2947 阅读 · 0 评论 -
iOS和Mac、windows通过数据线通信
通过搜索和查询,可以看到iOS的USB底层为usbmuxd,本质为从本地启用一个socket,监听socket的连接。把usb的数据转换到socket。具体的原理可以搜索一下或查看官方文档。iOS和Mac之间通过USB数据线传递数据,这样的demo在GitHub上有一个非常好的例子,peertalk:https://github.com/rsms/peertalk 这个demo可以很好的让...原创 2018-12-17 14:22:25 · 3384 阅读 · 1 评论 -
iOS集成OpenCV、灰度相机并颜色反转、简单人脸识别
iOS集成OpenCV需要先去OpenCV官网下载iOS使用的FrameWork,现在OpenCV支持java、oc等语言。下载好了之后,将framework拉入工程,然后将使用openCV的文件名字改成xxx.mm,改成.mm是告诉编译器这个文件使用Object—C++编译。添加依赖库:QuartzCore.framework,CoreVideo.framework,CoreMedia.framework,CoreImage.framework,CoreGraphics.framework,原创 2017-02-13 17:33:34 · 1567 阅读 · 0 评论 -
iOS中MVP架构
浅谈一下MVP架构模式M:即model,对于Model层也是数据层。它区别于MVC架构中的Model,在这里不仅仅只是数据模型。在MVP架构中Model它负责对数据的存取操作,例如对数据库的读写,网络的数据的请求等V:即UIView、UIViewController..是显示数据(model)并且将用户指令(events)传送到presenter以便作用于那些数据的一个接口。View通常含原创 2017-02-14 14:23:29 · 3836 阅读 · 0 评论 -
XMPPFramewoerk支持IPv6
之前有一个博主 写了一个支持 IPv6的改动方案 http://blog.csdn.net/xuxue1072/article/details/51481102但是我使用他的 不能改写成功 总是报错 Can't assign requested address 所以我查找一些其他资料找到一些其它的改写方案第一步 先把cocoaAsynocSocket更新到最新的,这可以从Github 上找到。原创 2016-08-23 09:44:15 · 1037 阅读 · 0 评论 -
svn: E155004: *** locked 或 is already locked.
svn: E155004: Working copy *** lockedsvn: E155004: *** is already locked.最近在svn 提交代码的时候报了上面的 错 在svn 选择refash/cleanup 也报错,不能用 最后找到一个方法 打开终端 cd 到出错的文件夹下执行 svn cleanup返回svn 执行刷新 试一下 不报错 然后提交原创 2016-09-22 11:49:42 · 3436 阅读 · 0 评论 -
Xcode8 打包app上传到iTunes Connect 但显示构建版本无效
9月14号,苹果更新了新版本,Mac、Xcode、iOS。。。等更新了作为一个iOS程序猿,我迫不及待更新了。。。。。刚接触新的版本,总感觉被坑了。更新之后各种问题,iOS 10 的字体变大了,证书可以自动设置了。。。。说来也巧,9月14号苹果更新,我们要上新版,各种忙活原创 2016-09-21 14:20:51 · 1097 阅读 · 0 评论 -
iOS客户端校验https网络请求证书
其实iOS系统的网络请求都有校验,比如NSURLConnection、NSURLSession都有系统的自动校验。具体的校验可进行百度我使用的是NSURLConnection进行的网络请求,NSURLConnection是代理回调的请求方式,其中有两个代理方法是用于进行校验证书的另外我说一下我们的需求,我们要求使用指定的CA证书进行校验不能使用系统的校验,系统的校验可自行百度,他校验证原创 2016-10-20 10:37:39 · 5825 阅读 · 3 评论 -
iTunes Connect 上架 -- App store 搜索不到 解决方法
将你的app定价修改成0.99刀修改你的发行范围,全取消后只选中国。save这时候你的app status将会变成pending contract。最后,将之前的修改都改回来,,然后save原创 2017-01-13 09:04:56 · 1084 阅读 · 0 评论 -
scrollView加载大量图片性能优化
在iOS中使用scrollView做图片轮播器、图片查看器是很常见的。如何做图片轮播、查看器呢?当图片比较少的时候 可以将图片全部加载到scrollView里,这样做容易写代码,代码简单,虽然图片全部占用着没有释放,但是因为图片少,感觉不到,也没什么问题但是当加载的图片比较多、比较大的时候,这样做就有可能内存溢出,收到内存警告那该怎样解决呢,网上也有很多例子,我在这说一下我自己的想法和原创 2017-02-09 16:08:39 · 2219 阅读 · 0 评论 -
iOS选择图片加载的方式
在iOS中图片加载的方式有好几种。网络图片的加载有好多三方库可以使用,自己也可以简单的实现一下这里说一下本地图片的加载,本地图片加载可以使用1、UIImage *imag1 = [UIImage imageNamed:@"image.png"];2、UIImage *image2 = [UIImage imageWithContentsOfFile:[[NSBundle mai原创 2017-02-09 17:31:25 · 2010 阅读 · 0 评论 -
iOS使用imageIO完成渐进加载图片
记录一下,以后用的时候容易找到地址:http://www.2cto.com/kf/201412/360452.html转载 2017-02-10 08:28:03 · 707 阅读 · 0 评论 -
iOS 使用HMAC
HMAC 是在MD5、SHA1、SHA256等的基础上发展,加入key进行计算摘要。摘要的算法是散列摘要的长度对于一个算法来说是固定的对于我们平常编程来说,摘要是唯一的,只要数据不一样摘要就会不一样理论上摘要的散列算法会发生散列碰撞,即两个数据的摘要是一样的,可以想一下,既然摘要有一个固定长度,那么它就会有一个表示的最大数据量,但是数据是无限的(比如数字1到∞)。所以摘要一定会发生散列原创 2017-02-13 09:16:06 · 4876 阅读 · 0 评论 -
iTunes Connect 显示上架成功后,App Store一直搜索不到(已经超过24小时)
一开始以为App Store会在24小时内逐步在发行区上线,但是等了24小时还是搜索不到现在提供一种解决办法,亲测有效第一步:进入iTunes Connect 将价格修改一下,然后将销售范围修改。例如:将价格调整为6元,将销售范围调整为只有中国,保存。这时候你的邮箱会收到邮件或者app状态会改变。即使什么都没有也没有关系。第二步:将价格和销售范围全部改成原来设置,保存。这时候ap原创 2017-02-13 17:34:41 · 5790 阅读 · 3 评论 -
iOS RunTime交换方法和给变量赋值的简单使用
在iOS可以用runtime做很多事,runtime赋予了oc面向对象开发的能力这里简单说一下runtime当程序调用一个不存在的方法的时候,系统会回调一些方法,这写方法可以帮助你处理因为调用不存在的方法而崩溃的问题。+ (BOOL)resolveClassMethod:(SEL)sel;+ (BOOL)resolveInstanceMethod:(SEL)sel;- (id)forwardingTargetForSelector:(SEL)aSelector;- (void)forwardIn原创 2017-02-10 17:19:02 · 1663 阅读 · 0 评论 -
The operation couldn't be completed (LaunchServicesError error 0.)
1.可以重启模拟器,点击模拟器 左上角Simulator 下拉菜单 Reset Content and Settings 重置模拟器 一般都会没问题了(亲测有效)2.如果上面的 还是不行的话,按 command + shift +G 在弹出来的菜单里填入一个路径 /Users/电脑的名字/Library/Developer/Xcode/DerivedData 跳转到该文件目录下,然后将Deri原创 2016-09-09 10:29:49 · 337 阅读 · 0 评论