- 博客(251)
- 资源 (17)
- 论坛 (6)
- 收藏
- 关注

原创 使用NSURLSession简单做一个上传图片的方法
通常上传文件、图片。使用http请求的POST方法,在body体中还有一些固定的格式。iOS SDK中的NSURLSession是一个heigh-level API,由于上传图片是一次性请求,实现起来还是很方便的:下面是关键代码,一个函数即可可以实现:
2017-04-27 15:45:56
3649

原创 【精】iOS知识树,知识点(包括对象、Block、消息转发、GCD、运行时、runloop、动画、Push、KVO、tableview,UIViewController、提交AppStore)
本文旨在总结iOS知识网络,知识点,该知识网络罗列出常见UIKit、Foundation的对象特点和一些使用经验,可以看成是一本书;文本编辑采用树的形式,对知识点进行罗列,并标注一些使用经验(★)希望对初学者有用或给一些解决疑难杂症者提供思路;某些知识点会深入探讨;通过总结希望站在一个较高平台的角度全观Objective-C。知识树中有些是原创文章,有些则是转载网络上iOS大神的文...
2016-02-29 00:02:37
12949
9

原创 Unicdoe【真正的完整码表】对照表(一)
真正完整的Unicode码表,其中CJK = Chinese-Japanese-Korean 下面列举了一些相关的索引。查看完整索引到:http://blog.csdn.net/xjgprs/article/details/57805742E80-2EFF:CJK 部首补充 (CJK Radicals Supplement) 2F00-2FDF:康熙字典部首 (Kangxi Ra
2013-06-07 22:13:26
486372
4

原创 Unicdoe【真正的完整码表】对照表(二)汉字Unicode表
注意:下面这两段是代理区。即第1——16平面的间接表示,四个字节的汉字就在这里表示D800-DBFF:High-half zone of UTF-16 DC00-DFFF:Low-half zone of UTF-16 本篇中包含了所有常用汉字27973个,剩余汉字使用代理区标识欢迎查看字符编码相关博客专栏比如:由iPhone emoji问题牵出的UTF-16编码,UTF-8编码探究
2013-06-07 11:20:23
367794
9
转载 iOS常见崩溃以及总结
【转载】作者:乳猪啸谷链接:https://juejin.im/post/6844903688608153614用户在使用App的过程中,经常遇到闪退的情况,体验不太好,本文尝试探索引发闪退的原因,以及在遇到crash的情况下,尽可能的保持程序运行,并及时上报错误。一、crash类型1.OC层面的crash1.1 普通类型NSInvalidArgumentException:非法参数异常,传入非法参数导致异常,nil参数比较常见。 NSRangeException:下标越界导致的异常
2020-11-06 17:50:48
193
原创 NSNotificationCenter 如果name是空?是什么效果?
典型的NSNotificationCenter使用方法:[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged) name:kReachabilityChangedNotificatio
2020-05-11 10:15:08
232
原创 [UIView animateWithDuration:completion:]被卡主,延迟执行了completion:回调
视频项目中遇到一个bug,横屏播放视频时候,转到小屏后。页面卡主了,点击页面没效果。但是点击播放器可以响应。debug时候查看UI层级,发现:在转屏过程中,转屏动画没有执行完(动画的completion:)没有执行。导致一些View设置没有得到执行。 断断续续,查了几天发现是视频弹幕的动画引起的。这里写一下伪代码:[UIView animateWithDuration:^{ 暂停弹幕动画} completion:^{ View的设置}];弹幕动...
2020-05-11 10:03:33
527
原创 iOS Hook系统类的办法,比如:UITextSelectionView
由于UITextSelectionView是系统的私有类,连头文件都没有。那么我们怎么hook它的方法呢。比如初始化方法initWithInteractionAssistant://步骤一 Method originEat = class_getInstanceMethod(NSClassFromString(@"UITextSelectionView"), ...
2020-04-22 17:13:16
456
原创 当自己视频APP,遇到别人音频APP后台播放音频时候
当别家音乐APP播放音乐,打开自家视频APP(虽然没有播放视频),但音乐app的音频却暂停了(如果是钉钉语音会议这种情况,会自动退出语音会议)。 查了资料:这是音频打断处理问题,举个例子: 第一种情况:比如闹铃打断的情况。先是AVAudioSessionInterruptionTypeBegan,闹铃结束调AVAudioSessionInterru...
2020-04-13 17:56:48
493
原创 UISlider 延迟调用touchesBegan,延迟调用valueChangeHandle。delay?
今天遇到一个体验问题。播放器的UISlider的thumbImage在拖拽后不是立即响应,而是等了0.3或0.5或1秒后才响应。(如何扩大thumbImage的响应区域,可百度)。如图所示: 虽然hitTest已经是UISlider了,但是,仍然登录0.x秒才执行touchesBegan:和valueChangeHandle:方法:2020-04-08 23:...
2020-04-08 23:57:34
181
原创 iOS端使用DSA加密
iOS 使用RSA就不说了,系统支持RSA。但是DSA只有mac os支持。所有APP需要DSA签名就需要借助openSSL库了。openSSL库有人编译好了,也可以自己编译(https://github.com/x2on/OpenSSL-for-iPhone) 第一步、下载上面的github中的代码。cd 到OpenSSL-for-iPhone-master工程路径输入命令:....
2019-11-21 19:40:48
227
原创 OC 对同一个方法进行多次交换(Method Swilzzling)
Method Swizzing主要用于在运行时将两个Method进行交换.例如:交换实例方法: Method originMethod = class_getInstanceMethod(target, originalSelector); Method swizzledMethod = class_getInstanceMethod(target, swizzledSele...
2019-10-21 13:19:25
378
原创 UICollectionView 刷新后空白,cell的hidden全是yes自己隐藏了。
网上也有同学遇到此类问题。我这边出现空白的原因是:本来collectionview的contentSize比frame小。中间手动将其contenSize改为和frame一样大。为了能够上下滑动(当时不知道有一个属性self.collectionView.alwaysBounceVertical = yes可以支持垂直方向滑动
2019-08-28 11:13:22
1171
原创 ios 通过代码调整焦距
我们在自定义相机时,若要实现镜头变焦,也就是推近或者拉远焦距,iOS 7以后的实现:可以通过修改AVCaptureDevice的 方法rampToVideoZoomFactor withRate 来实现镜头变焦,带有动画(本质上是修改AVCaptureDevice的缩放系数videoZoomFactor),代码如下(通过手势缩放)://最小缩放值- (CGFloat)min...
2019-08-25 22:38:42
1036
原创 iOS APP在前台收到push,弹出系统框
在iOS9以前,APP前台可以收到push的数据,但是没有UI展示,需要APP自己展示。iOS 10以后,苹果统一使用UserNotifications ,以前的API都被标为弃用了。在appdelegate 中添加代理和代理方法。#import <UserNotifications/UserNotifications.h>- (BOOL)applicati...
2019-06-21 13:09:19
2525
原创 【技巧】reloadSection和relaod方法。cell复用规则不太一样
reloadSection和relaod方法。复用规则不太一样:- (void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation NS_AVAILABLE_IOS(3_0);当调用[tableview reload]的时候,当前展示的cell,其实是可以复用...
2018-11-27 20:40:04
1332
3
原创 事物分段处理的好处,字符串处理
今天处理一个十六进制色值和alpha的问题,忽然想到。事物分段处理,逻辑容易的多。这也让我想起了快速排序现在有一个字符串@"#ffffff,0.2"或者@"#ffffff"这种无alpha默认是1.0,程序要将其解析成一个色值和alpha值。老的处理,OC代码片段+ (UIColor *)colorWithHexAlphaString:(NSString *)hexString {...
2018-10-25 09:53:12
416
原创 Mac 分卷压缩,解压。纯命令行实现
Mac 分卷压缩,解压。纯命令行实现,不需要解压软件。一、 分卷压缩 【前提】:把文件夹先压缩一次。生成original.zip,然后对original.zip进行分段压缩。zip - largefile | split -b 500k -a 3 - file.ziplargerfile替换为original.zip,后面的参数意思是500k一个卷,以file.zipxxx...
2018-10-24 10:23:13
7755
原创 迁移项目到新git地址
1. 创建一个新的git地址,创建自己ssh key(不是Deploy key)2. 进入旧工程目录3. 通过下面的命令git initgit remote set-url origin #新git地址,git@开头git push --allgit push --tag这样新的git看起来跟旧的工程一模一样。...
2018-10-24 10:22:34
1682
原创 JS的原型链,这个图你没见过
想到Objective-C有个isa指针,对象的isa指向类,类的isa指向元类,元类的isa指向自己。正是有了isa指针,才有了强大的runtime功能。那么,前端技术js也有自己的指向关系,这里借用《JavaScript高级编程》中的描述:每个构造函数都有一个原型对象(prototype) 原型对象都包含一个指向构造函数的指针(constructor) 实例都包含一个指向原型对象的...
2018-10-15 14:01:36
373
原创 NSNotification 也有”消息转发“,会不会崩溃呢?
NSNotification与多线程官方文档:In a multithreaded application, notifications are always delivered in the thread in which the notification was posted, which may not be the same thread in which an observer re...
2018-09-26 22:51:21
278
原创 用iPhone查看pc电脑上写的html(Mac电脑Charles)简单版
对于客户端同学开发来说,写一段代码想在真机上看看,是非常容易的。 那么在这么一个大前端的环境下,客户端开发想写点html和js代码,又想在手机上看看效果,怎么办呢? 需要以下几个步骤:大体流程:1. 安装webstorm,并设置webstorm,2,安装Charles,并设置charles。3. 设置手机代理。1. 电脑端安装websto...
2018-09-10 17:30:10
2275
1
原创 iOS配置证书:Provisioning profile "xx_Distribution" doesn't include signing certificate "iPhone Developer
正常情况下,顾名思义:provisioning文件没有包含xx证书。但是,你再三检查,这个provison包含这个证书呀。甚至重新生成provision文件。结果还是不行?重启XCode,重启Mac都不要用。两个小时过去了。 那么看看是不是下面这个情况:所以,问题就是:证书重复了。或者是创建了多个名字一样的证书。办法就是把他们都删了。注意:在钥匙串中,...
2018-08-29 11:37:09
10092
2
原创 iOS 启动就crash,难复现。最后确定是MobFoundation问题
最近iOS版本客户端崩溃率在1.5%左右,排名最高的是这个栈。当然,fabric已经说明,是内存错乱造成的,崩溃栈已经不准确了。没有复现导致开发很难查这个crash(根据栈提示,好像是block的问题,其实不然)#0. Crashed: com.apple.main-thread0 libobjc.A.dylib 0x1843c57f4 objc_o...
2018-05-08 16:50:03
2238
10
原创 使用git log功能对比两个分支代码变动,增加,删除行数。
git 提供了对比两个版本之间代码改动功能,即可以列出改动多少行代码。比如我们工程,得出的结果是:5.9.5 - 6.0.0 added lines: 4728 removed lines : 2610 total lines: 7338下面说一下步骤。该功能依赖gawk,需要下载包并安装:【一、准备gawk包】 1. 下载gawk 官网 或者 http://download.chinaunix....
2018-02-12 10:21:24
1889
原创 iphone连接mac 的ipv6环境,搭建过程。
需要一个手机A用于共享(只能usb)网络给mac,然后mac设置一下,共享ipv6网络给手机B,我们可以在手机B上调试APP。具体步骤如下:1. 手机A关闭wifi,打开个人热点,此时会弹出来对话框选择用usb还是wif。此处需选择“仅USB”。注意:手机A必须有卡,因为要用它的流量。2. 电脑上代网络设置,看看一下iphone usb是不是已经连接上。此时可以关闭mac的wifi,这样iphon
2018-01-29 11:21:30
2872
1
原创 [经验]Class MediaTransCoder is implemented in both One of the two will be used. Which one is undefined
可以断定是客户端的问题,不是framework的问题。查了很久,最后还是根据控制台输出,找到了问题所在:Class MediaTransCoder is implemented in both /private/var/containers/Bundle/Application/7D09FAA4-C843-44D9-89ED-132F614B5F5D/FSVideo.app/Frameworks/MediaTransCoder.framework/MediaTransCoder (0x10675c6d0
2017-11-30 14:18:47
4826
原创 masonry实现不规则图片布局【图】
直接上代码,思路是:将那一推图片分为四列,每一列是上下对齐的,不要使用按钮。UIImageView+UILabel即可
2017-11-01 11:40:56
1589
2
原创 https 不支持ip地址?
的确不支持。为啥呢?拿百度地址为例。访问百度的ip地址,就提示证书不信任,不匹配。原因是:一般来说证书都是以域名为标示的,跟访问的ip地址肯定不匹配。如图
2017-10-19 10:27:13
16144
3
原创 guideImageView.frame = videoPlayerVC.videoPlayerView.bounds;竟然frame不一样
结果guideImageView.frame和videoPlayerVC.videoPlayerView.的frame竟然不一样。这么一句赋值,竟然等号左边的不一样。颠倒了90°。查了资料后发现原来是view2有个transform啊。
2017-09-30 11:46:49
579
原创 cell 上下非对称margin新方式
UI设计师总是会设计出一些完美的视觉,但有些完美视觉效果需要特别的处理。前两年总听到一句话:一个漂亮的界面背后总是有一堆肮脏的代码。 先看一个有问题的效果。小图cell和大图cell之间的margin是12.5p,而两个小图cell之间的margin是25p.这是因为。cell的contentView在cell中是居中的,上下margin都是12.5。最终是这个效果:
2017-08-31 20:05:42
723
原创 [技巧]UIView的hidden和alpha的妙用
现状:暂停和loading都是通过hidden来实现显示和隐藏的。这两个的显示有各自的逻辑。暂停按钮显示5秒消失。loading图根据网络状况出现,消失。解决原则是:loading视图要比暂停优先级高,即loading会踢走暂停按钮,loading消失,暂停还需要出现(如果有的话)。那么,既然无法控制hidden,我们可以利用另外一个属性alpha。这样即便alpha=1,也不影响视图的显示结果。写一个伪代码:
2017-07-13 12:17:15
2389
原创 iOS区分不同版本URL schema
iOS项目开发中,同一个APP,在打包时,通常有三种版本:mobile版本,inhouse版本,App Store版本。前者用于程序员debug,inhouse用于测试同学、产品同学和公司其他同学的安装,最后的App Store则是发布版本。三个APP只是bundleID不同,证书不同。功能是完全一致。同一个设备上可安装三个APP,有些情况会给开发调试造成困扰,比如:APP带有第三方登录功能,用mobile版本APP登录,调起微信,授权后返回。由于mobile,inhouse,App Store三个APP都
2017-06-14 16:04:17
2787
原创 [算法]iOS 视频添加水印,合成视频两种方案(整体渲染和分割渲染)
现手机里有一段视频,通过APP给他添加一个水印。iOS提供了在视频上添加layer的接口,添加一个水印还是很方便的(添加水印)。添加完水印有一个渲染过程,在手机这种设备上还是比较慢的,比如:对1分钟的高清视频(960x540)进行渲染需要20秒左右。如何在现有API基础上提高渲染速度,提升用户体验,成了问题。笔者发现两种渲染方法: 先看图,这有一个6秒的视频,我抓了四张关键帧。只在第2,3两张关键帧上添加字幕(一个关键帧代表1.5秒。所以,两个关键帧就代表是3秒时长)
2017-05-25 14:49:40
5017
1
原创 [经验]tableview的contentSize默默自己在变。
项目中遇到一个诡异的问题:tableview的contentSize在滚动的时候自动在变小。这里先说一下项目环境:UIViewController有个tableview,可以通过上拉加载,实现加载更多数据。在一日测试中发现,一直上拉,上拉到第三页的时候。页面反而滚动到了顶部惊讶。上拉加载更多,结果应该是tableview显示底部数据,contentoffset应该是一个比较大的值。现在却弹回去了。看看输出日志
2017-05-15 19:02:51
3740
原创 scrollRectToVisible 无效的两个原因
除了UIScrollView的ContentSize的width或者height是0的原因外,可能还有一个原因就是UITableview的contentInset是负值,比如:self.tableView.contentInset = UIEdgeInsetsMake(-5, 0, 0, 0);删除这个contentInset或者inset是正值,滚动到顶部都可以生效
2017-05-05 11:49:45
2740
翻译 iOS返璞归真,译文系列——UIViewController
UIViewController懒加载他的view。第一次访问视图属性加载或创建视图控制器的视图。不是所有的“will”回调方法都只与“did”回调方法配对
2017-03-16 15:19:20
1681
翻译 iOS返璞归真,译文系列——UIScreen
UIScreen一个uiscreen对象定义了一个基于硬件的显示相关的属性。iOS设备的主屏幕和零个或多个连接的屏幕。一个TVOS装置具有电视连接到设备的主屏幕。使用此类获取连接到设备的每个显示器的屏幕对象。每个屏幕对象定义关联显示的边界矩形和其他有趣的属性,如它的亮度。概要 在iOS 8之前,屏幕的边界矩形总是反映相对于肖像定位屏幕尺寸。旋转设备的景观或倒置的方向并没有改变边界。在
2017-03-16 15:18:33
730
树tree、动态数组dyArray、hashMap、拼图算法
2014-08-15
core-data和sqlite3性能对比demo
2013-06-18
hherima的留言板
发表于 2020-01-02 最后回复 2020-01-02
launchscreen.storyboard 强制横屏(iPad)
发表于 2015-09-29 最后回复 2015-09-30
客户端从服务器分页获取列表,如何保证流量最少,且客户端和Server数据的一致性?
发表于 2014-02-13 最后回复 2014-02-14
visual studio是用什么语言写的,它又是怎么编译成为.exe的
发表于 2009-11-07 最后回复 2011-12-20
深入阐述“跨平台”,高手进。
发表于 2009-12-06 最后回复 2009-12-06
Symbian 多视图切换时出错,系统错误-1
发表于 2009-09-27 最后回复 2009-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝