
Objective-C
文章平均质量分 53
Z_oneday
一个灵魂放飞的程序员,致力于成为一名IT界的大导演。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
iOS架构设计与分层
结构设计的层次是否越多越好?多人都会说,凡事不能走极端,走了极端就过犹不及。所以应该分层,但不能过分分层,应该视具体情况来定。这样的话听起来很有道理,却只是一句废话。当我们遇到问题时,还是摸不着头脑!看看知名的架构师是怎么说的吧!来自蔡学镛我做(开发)架构的几个原则,根据优先次序高低排列:1. (逻辑)拆分越细越好 2. 依赖关细越少越好 3. 交互越少越好 ... 相转载 2017-03-17 17:37:37 · 776 阅读 · 0 评论 -
Runtime进阶二:给分类添加属性
Runtime实战进阶二:给分类添加属性给分类添加属性下面进入正题在分类添加了属性之后,需要通过Runtime动态关联对象,生成set和get方法,举个例子如下,在分类中添加属性 name。需要手动生成set和get方法:原创 2017-12-29 10:36:35 · 441 阅读 · 0 评论 -
Runtime进阶三:字典转模型
Runtime进阶三:字典转模型 写在前面,这是一篇介绍如何通过Runtime来实现,从请求到数据,到生成模型,再到给模型赋值的全过程。如果只在意结果,可以分别用三方软件生成模型,再用MJExtension等三方库给模型赋值。首先第一步:请求到数据后生成模型// 拼接属性字符串代码 NSMutableString *strM = [NSMutableString string];原创 2018-01-03 20:13:27 · 356 阅读 · 0 评论 -
跳转UIImagePickerController崩溃原因
键盘没有收起来!!!!!!记录自己犯下的错误。原创 2017-12-20 15:04:39 · 1708 阅读 · 0 评论 -
代码评审
通常在大一点的企业中,会定期面对面对代码进行评审Code Review 的意识作为一个 Developer ,不仅要提交可工作代码(Deliver working code),更要提交 可维护的代码(Deliver maintainable code)必要时进行重构,随着项目的迭代,在开发新增功能的同时,开发要主动计划重构的工作项开放的心态,虚心接受大家的评审建议(Revi原创 2018-01-26 15:29:12 · 1046 阅读 · 0 评论 -
iOS获取唯一设备小结
自从iOS5之后,苹果废除了通过代码获取UDID的权限。所以理论上不存在绝对的唯一标识符。通过各种方法达到类似唯一标识符的效果但是都有瑕疵。1、通过广告标识符确认唯一设备。弊端:如果用户完全重置系统((设置程序 ->通用 ->还原 ->还原位置与隐私),这个广告标示符会重新生成。另外如果用户明确的还原广告(设置程序->通用 ->关于本机 ->广告 ->还原广告标示符),那么广告标示符也原创 2017-10-17 16:11:16 · 328 阅读 · 0 评论 -
手把手教你git管理代码忽略无效文件
在多人开发的过程中,通过git来管理项目的时候,如果没有做任何处理的话,通常会因为自动生成的描述文件而产生各种各样的冲突和问题。但是这样的描述文件却是我们项目开发中根本不需要的。因此就要想办法干掉它。网上早就有大神弄了一个.gitignore。里面基本涵盖了正常开发会用到的绝大多数语言。下面跟着我一步一步的操作:首先第一步:去GitHub下载最新的 .gitignore 文件。 点击打开链接。第二原创 2017-04-25 11:37:39 · 790 阅读 · 0 评论 -
iOS UIScrollView弹性问题
UIScrollorView自带越界回弹的属性,那么它在什么样的情况下,弹性会消失呢 1、scrollorView.bounce = false 2、scrollorView设置了contentSize,并且contentSize的尺寸小于等于scrollorView的尺寸。 那么,有时候contentSize的尺寸就是不大于scrollorView的尺寸,但是就想要弹性怎么办呢? 解决方...原创 2018-03-13 17:59:22 · 5862 阅读 · 0 评论 -
分类无法添加属性深入探究
之前已经写过两篇关于分类添加属性的博客了。 一篇着重讲基本原理:点击跳转 一篇着重讲如果非要添加的话怎么做:点击跳转今天跟一个大神深入探讨了一下核心的原因,对我之前两篇文章里强调的一句话做一些修正:“在OC里,category不能自动生成成员变量和setter和getter方法”。 这句话里的“不能”应该改为“系统选择了不做”。具体原因有以下两点:第一点: 如果在编译的时候...原创 2018-03-22 20:47:57 · 314 阅读 · 0 评论 -
iOS UIscrollView上添加View,设置约束不显示解决办法
不论是OC还是Swift都会遇到这样的问题,在scrollorView上添加view,给view设置约束后,run一下发现。view并没有显示,尤其是代码看起来好像没问题,举个例子如下://这是用Swift举的例子。跟OC是一样的。private func creatUI() { contentView.addSubview(scrollView) scrol...原创 2018-04-01 15:44:56 · 7124 阅读 · 1 评论 -
Runtime进阶一:Method Swizzling
Runtime实战进阶一:Method Swizzling本文详解通过runtime来替换两个方法的实现原创 2017-12-28 14:18:38 · 368 阅读 · 0 评论 -
自定义可复用统计SDK设计
之前换工作,有家公司福利待遇各方面都特别满意,十分想去,但是面试碰到个问题,让我尴尬了,虽然本人到目前为止从事iOS开发三年多,但大多独立开发,这问题还真没深入去考虑过。下面我具体讲讲遇到的问题。首先,那个公司的项目要自己开发统计的sdk,不用第三方库,主要是考虑到数据安全的问题,这其实没什么,自己开发就自己开发吧,然后,面试官问我开发这个sdk的思路是什么,应该怎么去做,然后我滔滔不绝的原创 2017-03-13 17:50:30 · 1593 阅读 · 6 评论 -
环信SDK3.2.3和EaseUI消息列表和聊天的简单实现
因为项目以前的环信,是要用到环信的EaseUI的。所以集成的时候,只能手动导入(原因下面会说到),这里介绍的也是手动导入。从环信官网上下来的包如图环信开发包然后目录解释环信文档上也有解释从官网上下载下来的包中分为如下五部分:环信 iOS HyphenateSDK 开发使用(不包含实时通话功能)环信 iOS HyphenateFullSDK原创 2017-03-09 16:04:16 · 2041 阅读 · 0 评论 -
https原理和iOS的适配(认证)
一、http和https的区别引用度娘的一段话HTTPS和HTTP的区别超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。为了解决HTT原创 2017-03-09 16:07:12 · 5496 阅读 · 1 评论 -
WKWebview替代UIWebView之简单攻略
前言Xcode8发布以后,编译器开始不支持IOS7,所以很多应用在适配IOS10之后都不在适配IOS7了,其中包括了很多大公司,网易新闻,滴滴出行等。因此,我们公司的应用也打算淘汰IOS7。支持到IOS8,第一个要改的自然是用WKWebView替换原来的UIWebView。WKWebView有很多明显优势:更多的支持HTML5的特性官方宣称的高达60转载 2017-03-10 17:27:27 · 365 阅读 · 0 评论 -
cocoapods 执行 pod search 命令失败解决办法
今天换了新的iMac,重新下载cocoapods,之前的步骤网上太多了。自行百度。按照往常的方法一样安装Cocoapods,在安装的过程中遇到了一切问题,按照传统的命令sudo gem install cocoapods出现了如下的错误:ERROR: While executing gem ... (Errno::EPERM) Operation not permit原创 2017-03-10 17:05:57 · 2426 阅读 · 0 评论 -
分类添加属性,_cmd。
正常情况下,创建的分类只能添加方法而不能添加属性,但是具体什么原因,下面我来根据我实际实验得出的结论简单讲讲。首先,如果在普通的类里添加@property,那么系统会自动生成带“_”的成员变量,以及该变量的setter和getter方法。那么,如果在分类里添加@property的话,会怎么样呢?通过打印发现,在分类里添加@property,系统并不能生成带“_”的成员变量,自然也没原创 2017-03-09 15:33:03 · 519 阅读 · 0 评论 -
用cocoapods导入的三方库方法无法识别问题
今天遇到一个新奇的问题,特意记录下来首先有个半成品项目需要添加一个新功能,这个功能在别的项目已经弄好了,我就想着直接拿过来用好了,然后巴拉巴拉一顿弄,编译success。我很开心。以为成功了。然后run一下之后……直接崩了,报的错误是无法识别的选择器发送给实例unrecognized selector sent to instance 0x6000000cb050然后我打了断点原创 2017-10-11 16:50:35 · 1086 阅读 · 0 评论 -
解决wkwebview在9.2系统加载延迟问题
最近项目又出了一个莫名其妙的bug,果然wkwebview上的坑多的让人受不了。在9.2系统的时候,点击webview内的按钮跳转页面,在返回的时候,reload页面。整个页面会毫无反应,要延迟30秒才能加载完成。我hin难受,先问了问度娘。没有答案,又翻墙问了问谷哥,他也不告诉我。无奈,只能自己慢慢寻求解决办法。 研究了半天,只能采取一个笨办法。就是判断系统版本为9.x的时候,把原创 2017-10-17 15:15:25 · 3123 阅读 · 0 评论 -
iPhoneX适配解决iPhoneX跳转页面时tabbar上移问题
iPhoneX马上要发布了,所以iPhoneX的适配也提上了日程,近日发现一个问题是,当跳转页面的时候,只要加上hidesBottomBarWhenPushed = YES 这行代码,当跳转页面的时候,tabbar都会上移一下,返回的时候也是回到原位的。问题虽然不大,但看着难受。所以千方百计的找解决办法。终于,解决办法如下: 第一步:写一个类继承自UITabBar原创 2017-10-16 15:45:13 · 8494 阅读 · 0 评论 -
iOS开发从申请开发账号到APP上架的整体流程详解
应公司要求,写一份文档从申请账号一直到APP上架的整体流程,下面进入正文。首先第一步,申请开发者账号:开发者账号有三种,分别是个人,组织,教育机构,其中组织又分为公司和企业,其中个人和公司都是99美金/年,企业级的开发者账号为299美金/年,本文详解个人、公司级开发者账号。准备工作:1. 一张开通visa或master功能的信用卡,公司邮箱,公司网站(需与邮箱后缀一致)2. 打开注册开发者账号链接原创 2017-12-08 18:22:03 · 74604 阅读 · 10 评论 -
正经修改Xcode工程名详解
网上关于修改Xcode工程名的博文多的不行,但大多都是复制粘贴同一个人的文章。结果就导致几乎都有很大的问题。 下面我说一下亲身实践修改Xcode工程名方法: 首先,前面的步骤按照这篇文章做就行。点我跳转1、如果是正经开发的项目的话,按照上面那篇文章操作完之后,一般还会有错误。 一个是推送。报错如下 Code signing is required for product type ...原创 2018-04-04 18:13:49 · 408 阅读 · 0 评论