自定义博客皮肤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工匠——只为更精致的产品

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

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

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

2017-04-27 15:45:56 4342

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

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

2016-02-29 00:02:37 13685 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 631845 7

原创 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 1457396 17

原创 UIStackView入门使用两个问题

项目中横向一排元素,竖向一排元素,可以使用UIStackView。UIStackView的原理不做介绍,这里主要讲两个初次使用容易出现的两个问题。首先创建一个stackview 向stackview中添加view默认情况下,stackview中的元素是填满整个stackview的(fill),属性是distribution。其他的axis,alignment比较好理解。从结果上看,如果使用frame,stackview会依赖元素自身大小布局,比如皇冠的icon frame是20*14.5。但是皇

2023-09-10 21:27:35 624

原创 横屏页面present一个竖屏VC

iOS转屏一些忽视的问题。

2022-10-02 22:54:13 450 1

原创 UICollectionView 的 scrollToItemAtIndexPath 方法失效?

项目中某个tableview中的cell添加了一个UICollectionView,并使用timer实现横滑自动滚动。采用数组个数乘以100(生成很长的一个collectionview),然后定位到50个位置。避免手动滑到头或者尾。写完代码发现,这行代码 [self.collectionView scrollToItemAtIndexPath:nextIndexPath atScrollPosition:UICollectionViewScrollPositi...

2021-07-30 23:38:04 1021

原创 2021年3月31日之后,APNs将不再支持传统二进制协议(解决沙盒 push发送失败)

之前的Pusher,Smartpush,以及本博客中php写的代码都失效了。可以使用Knuff客户端发送pushAPNs will not support legacy binary protocol as of March 31, 2021.The HTTP/2‑based Apple Push Notification service (APNs) provider API lets you take advantage of great features, such as a...

2021-07-20 15:04:06 669

原创 Found an unexpected Mach-O header code: 0x72613c21

打商店包时候遇到这个问题。普遍的解释是动态库没有选择embed&sign.或者静态库选择了这个。今天遇到另外一个可能,应该比较少见:framework中嵌套framework。比如:

2021-06-01 19:25:40 561

原创 主线程 -[__NSDictionaryM objectForKey:] SEGV_ACCERR 类型的crash

项目中遇到一个偶现crash,如图:按道理-[__NSDictionaryM objectForKey:] 即便dict是nil或者key是nil都不会crash啊。查阅资料:有同学反馈NSMutableDictionary is not thread safe。先在demo中模拟一下场景:+ (NSMutableDictionary *)cacheDictionary{ static NSMutableDictionary *instance = nil; static.

2021-03-21 00:13:51 2136 3

转载 iOS常见崩溃以及总结

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

2020-11-06 17:50:48 3440

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

一图胜万语

2020-05-26 16:49:50 983

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

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

2020-05-11 10:15:08 509

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

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

2020-05-11 10:03:33 1879

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

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

2020-04-22 17:13:16 1640

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

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

2020-04-13 17:56:48 1379

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

原创 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 764 4

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

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

2019-10-21 13:19:25 1750

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

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

2019-08-28 11:13:22 2683

原创 ios 通过代码调整焦距

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

2019-08-25 22:38:42 3071

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

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

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

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

2018-10-25 09:53:12 631

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

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

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

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

2018-10-15 14:01:36 573

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

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

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

2018-09-10 17:30:10 2861 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 19949 3

原创 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 2937 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 3823

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

原创 职场“两个不惊讶”

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

2018-01-16 19:31:15 640 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 7640

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

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

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

原创 https 不支持ip地址?

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

2017-10-19 10:27:13 22578 4

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

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

2017-09-30 11:46:49 732

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

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

2017-08-31 20:05:42 1023

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

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

2017-07-13 12:17:15 3907

build-protobuf-2.5.0.sh

Xcode 5 / iOS 7配置ProtoBuf脚本

2015-06-22

树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

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

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

2013-03-04

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

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

2013-03-04

iOS Tableview

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

2013-03-04

symbian v3 五子棋游戏——原创

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

2010-06-30

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

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

2010-03-26

visual studio2005配置qt环境.doc

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

2009-06-27

在VC下编译运行MiniGUI程序

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

2009-03-19

空空如也

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

TA关注的人

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