自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

郭晓东的专栏

IT工匠——只为更精致的产品

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

原创 使用NSURLSession简单做一个上传图片的方法

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

2017-04-27 15:45:56 3657

原创 【精】iOS知识树,知识点(包括对象、Block、消息转发、GCD、运行时、runloop、动画、Push、KVO、tableview,UIViewController、提交AppStore)

        本文旨在总结iOS知识网络,知识点,该知识网络罗列出常见UIKit、Foundation的对象特点和一些使用经验,可以看成是一本书;文本编辑采用树的形式,对知识点进行罗列,并标注一些使用经验(★)希望对初学者有用或给一些解决疑难杂症者提供思路;某些知识点会深入探讨;通过总结希望站在一个较高平台的角度全观Objective-C。知识树中有些是原创文章,有些则是转载网络上iOS大神的文...

2016-02-29 00:02:37 12955 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 489053 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 369493 9

转载 iOS常见崩溃以及总结

【转载】作者:乳猪啸谷链接:https://juejin.im/post/6844903688608153614用户在使用App的过程中,经常遇到闪退的情况,体验不太好,本文尝试探索引发闪退的原因,以及在遇到crash的情况下,尽可能的保持程序运行,并及时上报错误。一、crash类型1.OC层面的crash1.1 普通类型NSInvalidArgumentException:非法参数异常,传入非法参数导致异常,nil参数比较常见。 NSRangeException:下标越界导致的异常

2020-11-06 17:50:48 224

原创 push和present 两种方式。viewWillDisAppear,viewDidDisAppear的顺序

一图胜万语

2020-05-26 16:49:50 296

原创 NSNotificationCenter 如果name是空?是什么效果?

典型的NSNotificationCenter使用方法:[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged) name:kReachabilityChangedNotificatio

2020-05-11 10:15:08 244

原创 [UIView animateWithDuration:completion:]被卡主,延迟执行了completion:回调

视频项目中遇到一个bug,横屏播放视频时候,转到小屏后。页面卡主了,点击页面没效果。但是点击播放器可以响应。debug时候查看UI层级,发现:在转屏过程中,转屏动画没有执行完(动画的completion:)没有执行。导致一些View设置没有得到执行。 断断续续,查了几天发现是视频弹幕的动画引起的。这里写一下伪代码:[UIView animateWithDuration:^{ 暂停弹幕动画} completion:^{ View的设置}];弹幕动...

2020-05-11 10:03:33 551

原创 iOS Hook系统类的办法,比如:UITextSelectionView

由于UITextSelectionView是系统的私有类,连头文件都没有。那么我们怎么hook它的方法呢。比如初始化方法initWithInteractionAssistant://步骤一 Method originEat = class_getInstanceMethod(NSClassFromString(@"UITextSelectionView"), ...

2020-04-22 17:13:16 483

原创 当自己视频APP,遇到别人音频APP后台播放音频时候

当别家音乐APP播放音乐,打开自家视频APP(虽然没有播放视频),但音乐app的音频却暂停了(如果是钉钉语音会议这种情况,会自动退出语音会议)。 查了资料:这是音频打断处理问题,举个例子: 第一种情况:比如闹铃打断的情况。先是AVAudioSessionInterruptionTypeBegan,闹铃结束调AVAudioSessionInterru...

2020-04-13 17:56:48 509

原创 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 184

原创 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 233

原创 OC 对同一个方法进行多次交换(Method Swilzzling)

Method Swizzing主要用于在运行时将两个Method进行交换.例如:交换实例方法: Method originMethod = class_getInstanceMethod(target, originalSelector); Method swizzledMethod = class_getInstanceMethod(target, swizzledSele...

2019-10-21 13:19:25 397

原创 UICollectionView 刷新后空白,cell的hidden全是yes自己隐藏了。

网上也有同学遇到此类问题。我这边出现空白的原因是:本来collectionview的contentSize比frame小。中间手动将其contenSize改为和frame一样大。为了能够上下滑动(当时不知道有一个属性self.collectionView.alwaysBounceVertical = yes可以支持垂直方向滑动

2019-08-28 11:13:22 1182

原创 ios 通过代码调整焦距

我们在自定义相机时,若要实现镜头变焦,也就是推近或者拉远焦距,iOS 7以后的实现:可以通过修改AVCaptureDevice的 方法rampToVideoZoomFactor withRate 来实现镜头变焦,带有动画(本质上是修改AVCaptureDevice的缩放系数videoZoomFactor),代码如下(通过手势缩放)://最小缩放值- (CGFloat)min...

2019-08-25 22:38:42 1063

原创 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 2554

原创 【技巧】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 1347 3

原创 事物分段处理的好处,字符串处理

今天处理一个十六进制色值和alpha的问题,忽然想到。事物分段处理,逻辑容易的多。这也让我想起了快速排序现在有一个字符串@"#ffffff,0.2"或者@"#ffffff"这种无alpha默认是1.0,程序要将其解析成一个色值和alpha值。老的处理,OC代码片段+ (UIColor *)colorWithHexAlphaString:(NSString *)hexString {...

2018-10-25 09:53:12 418

原创 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 7816

原创 迁移项目到新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 1693

原创 JS的原型链,这个图你没见过

想到Objective-C有个isa指针,对象的isa指向类,类的isa指向元类,元类的isa指向自己。正是有了isa指针,才有了强大的runtime功能。那么,前端技术js也有自己的指向关系,这里借用《JavaScript高级编程》中的描述:每个构造函数都有一个原型对象(prototype) 原型对象都包含一个指向构造函数的指针(constructor) 实例都包含一个指向原型对象的...

2018-10-15 14:01:36 377

原创 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 284

原创 用iPhone查看pc电脑上写的html(Mac电脑Charles)简单版

        对于客户端同学开发来说,写一段代码想在真机上看看,是非常容易的。        那么在这么一个大前端的环境下,客户端开发想写点html和js代码,又想在手机上看看效果,怎么办呢?        需要以下几个步骤:大体流程:1. 安装webstorm,并设置webstorm,2,安装Charles,并设置charles。3. 设置手机代理。1. 电脑端安装websto...

2018-09-10 17:30:10 2280 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 10236 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 2248 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 1904

原创 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 2887 1

原创 职场“两个不惊讶”

两个不惊讶:第一个不惊讶:业务能力高的员工离职了,管理者不惊讶。第二个不惊讶:业务能力的员工被开除了,他不惊讶。

2018-01-16 19:31:15 493 4

原创 [经验]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 4857

原创 masonry实现不规则图片布局【图】

直接上代码,思路是:将那一推图片分为四列,每一列是上下对齐的,不要使用按钮。UIImageView+UILabel即可

2017-11-01 11:40:56 1592 2

原创 https 不支持ip地址?

的确不支持。为啥呢?拿百度地址为例。访问百度的ip地址,就提示证书不信任,不匹配。原因是:一般来说证书都是以域名为标示的,跟访问的ip地址肯定不匹配。如图

2017-10-19 10:27:13 16260 3

原创 guideImageView.frame = videoPlayerVC.videoPlayerView.bounds;竟然frame不一样

结果guideImageView.frame和videoPlayerVC.videoPlayerView.的frame竟然不一样。这么一句赋值,竟然等号左边的不一样。颠倒了90°。查了资料后发现原来是view2有个transform啊。

2017-09-30 11:46:49 581

原创 cell 上下非对称margin新方式

UI设计师总是会设计出一些完美的视觉,但有些完美视觉效果需要特别的处理。前两年总听到一句话:一个漂亮的界面背后总是有一堆肮脏的代码。 先看一个有问题的效果。小图cell和大图cell之间的margin是12.5p,而两个小图cell之间的margin是25p.这是因为。cell的contentView在cell中是居中的,上下margin都是12.5。最终是这个效果:

2017-08-31 20:05:42 726

原创 [技巧]UIView的hidden和alpha的妙用

现状:暂停和loading都是通过hidden来实现显示和隐藏的。这两个的显示有各自的逻辑。暂停按钮显示5秒消失。loading图根据网络状况出现,消失。解决原则是:loading视图要比暂停优先级高,即loading会踢走暂停按钮,loading消失,暂停还需要出现(如果有的话)。那么,既然无法控制hidden,我们可以利用另外一个属性alpha。这样即便alpha=1,也不影响视图的显示结果。写一个伪代码:

2017-07-13 12:17:15 2427

原创 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 2800

原创 [算法]iOS 视频添加水印,合成视频两种方案(整体渲染和分割渲染)

现手机里有一段视频,通过APP给他添加一个水印。iOS提供了在视频上添加layer的接口,添加一个水印还是很方便的(添加水印)。添加完水印有一个渲染过程,在手机这种设备上还是比较慢的,比如:对1分钟的高清视频(960x540)进行渲染需要20秒左右。如何在现有API基础上提高渲染速度,提升用户体验,成了问题。笔者发现两种渲染方法: 先看图,这有一个6秒的视频,我抓了四张关键帧。只在第2,3两张关键帧上添加字幕(一个关键帧代表1.5秒。所以,两个关键帧就代表是3秒时长)

2017-05-25 14:49:40 5044 1

原创 [经验]tableview的contentSize默默自己在变。

项目中遇到一个诡异的问题:tableview的contentSize在滚动的时候自动在变小。这里先说一下项目环境:UIViewController有个tableview,可以通过上拉加载,实现加载更多数据。在一日测试中发现,一直上拉,上拉到第三页的时候。页面反而滚动到了顶部惊讶。上拉加载更多,结果应该是tableview显示底部数据,contentoffset应该是一个比较大的值。现在却弹回去了。看看输出日志

2017-05-15 19:02:51 3750

原创 scrollRectToVisible 无效的两个原因

除了UIScrollView的ContentSize的width或者height是0的原因外,可能还有一个原因就是UITableview的contentInset是负值,比如:self.tableView.contentInset = UIEdgeInsetsMake(-5, 0, 0, 0);删除这个contentInset或者inset是正值,滚动到顶部都可以生效

2017-05-05 11:49:45 2759

翻译 iOS返璞归真,译文系列——UIViewController

UIViewController懒加载他的view。第一次访问视图属性加载或创建视图控制器的视图。不是所有的“will”回调方法都只与“did”回调方法配对

2017-03-16 15:19:20 1686

翻译 iOS返璞归真,译文系列——UIScreen

UIScreen一个uiscreen对象定义了一个基于硬件的显示相关的属性。iOS设备的主屏幕和零个或多个连接的屏幕。一个TVOS装置具有电视连接到设备的主屏幕。使用此类获取连接到设备的每个显示器的屏幕对象。每个屏幕对象定义关联显示的边界矩形和其他有趣的属性,如它的亮度。概要        在iOS 8之前,屏幕的边界矩形总是反映相对于肖像定位屏幕尺寸。旋转设备的景观或倒置的方向并没有改变边界。在

2017-03-16 15:18:33 733

树tree、动态数组dyArray、hashMap、拼图算法

树:采用C语言实现 动态数组dyArray:采用C语言实现 hashMap,采用链表实现hash 拼图算法:采用二叉树结果拼图算法

2014-08-15

iOS平台ProtocolBuf说明

简单说明protobuf的使用,编码,使用!

2014-03-11

30行实现iOS下gif显示(xcode)

30行实现iOS下gif显示(xcode)完美实现gif的播放。

2013-11-05

core-data和sqlite3性能对比demo

◆ Core Data是一个功能强大的层,位于SQLite数据库之上, 它避免了SQL的复杂性,能让我们以更自然的方式与数据库进行交互 ◆ 这样看来它跟Sqltie3在速度上是没有可比性的。Sqlite3肯定要快! ◆ 但是快多少?还有那些优劣,这是我们要研究的!

2013-06-18

volatile,nonatomic和atomic关键字测试

主要研究四种变量(属性)的存取速度. volatile nonatomic atomic和正常变量

2013-05-28

utf8,unicode,gbk,base64实现

utf8,unicode,gbk,base64实现,温习一下这个过程。

2013-03-25

urlencode urldecode实现

urlencode urldecode实现,在xcode里使用c++混编

2013-03-21

多叉树解析关键字,滑动引擎

利用多叉树解析关键字,另外还包括自制滑动引擎的实现。

2013-03-20

iOS 显示汉字的Unicode和UTF-8编码

iOS 显示汉字的Unicode和UTF-8编码

2013-03-10

ios 简单绘制文本,线条,图片,动画,按钮

ios 简单绘制文本,线条,图片,动画,按钮

2013-03-04

iOS Tableview

简单的Tableview,也就是我们平常用的list

2013-03-04

网络传输文本,urlEncode和decode的实现。

网络传输文本,urlEncode和decode的实现。 在vs 2005上通过实验。

2013-03-04

symbian v3 五子棋游戏——原创

经典游戏五子棋,Symbian s60 第三版。 绝对原创。 你不一定下得过它哦。 支持源代码开发!

2010-06-30

symbian半透明例子(原创,容易理解).rar

包含 1.在程序里使用直接引用汉字显示到屏幕。 2.图片半透明,按上下键查看效果。

2010-03-26

build-protobuf-2.5.0.sh

Xcode 5 / iOS 7配置ProtoBuf脚本

2015-06-22

visual studio2005配置qt环境.doc

看看怎么在visual studio 2005上配置Qt运行环境。

2009-06-27

在VC下编译运行MiniGUI程序

经过 配置minigui可以在 visual studio 下运行

2009-03-19

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的粉丝

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