自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (1)
  • 收藏
  • 关注

原创 iOS 性能优化-UIImage的使用

线上问题:在项目的线上crash日志中发现imageNamed方法导致的崩溃。分析原因:imageNamed:生成的UIImage对象,会在应用的bundle中寻找图片,如果找到,则Cache到系统缓存中,并且显示图片。如果需要重复加载该图片,系统能很快从内存的cache找到这张图片,查找效率会比较高。但是如果加载很多较大的图片,内存消耗过大,达到阙值就会强制释放内存,即会遇到内存警告(mem...

2019-12-05 18:44:28 657

原创 踩坑小结

一. tableview的顶部有位移偏差我们知道cell是layout在UITableView的subview :UITableViewWrapperView上的,通过view Hierarchy可以看到有错位的实际上是UITableViewWrapperView。 automaticallyAdjustsScrollViewInsets,当设置为YES时(默认YES),如果视图里面存在唯一一个

2017-09-14 17:51:33 347

原创 Xcode报编译器报错: linker command failed with exit code 1(use -v to see invocation)

最近换了台新机子,搭环境,拉代码,Xcode编译时工程报警告 ld: warning: directory not found for option '-F/Applications/Xcode-beta.app/Contents/...' ld: warning: directory not found for option '-L/...' ld: library not found for -

2017-08-07 17:41:14 620

原创 iOS面试汇总(更新)……

最经典的网上的相关面试题招聘一个靠谱的 iOS(百度sunnyxx现滴滴)《招聘一个靠谱的 iOS》—参考答案(上)(下)(iOS程序犭袁整理)知乎上的一个怎么面试iOS工程师的问题一份”有点难”的iOS面试题

2017-07-09 19:21:02 470

原创 iOS GCD之dispatch_semaphore(信号量)

前言最近在看AFNetworking3.0源码时,注意到在 AFURLSessionManager.m 里面的 tasksForKeyPath: 方法 (L681),dispatch_semaphore不甚理解,经查原来是通过引入信号量(dispatch_semaphore)的方式把NSURLSession的异步方法 getTasksWithCompletionHandler: 变成了同步方法这里是

2017-04-25 17:37:03 6257

原创 readonly属性值的修改方案讨论

问题前两天面试,被问到关键词readonly修饰的属性访问操作,如何实现只读属性的修改? 比如:在某些SDK中,没有提供相应接口,但实际项目中却要求要有对某些属性的修改权限,这时可能就要考虑如何修改只读属性了。 再比如:UITableView的只读属性style(UITableViewStylePlain/UITableViewStyleGrouped)// LGYStudent.h//

2017-04-17 20:40:47 1970

原创 关于Cocoa Touch事件处理流程-响应者链以及hitTest方法流程

http://www.cnblogs.com/tangbinblog/p/4066930.html关于hitTest:withEvent: 字面意思是撞击测试,当手指触摸到当前屏幕上活跃的 app 界面。ios 系统会将 当前触摸操作 打包,具体就是UIEvent 屏幕上的每一次动作都是一个UITouch,多个UITouch  组成一次UIEvent.  UIEve

2017-03-16 10:55:46 820

转载 在iOS开发中使用iconfont图标

在开发iOS项目时,不可避免的会用到图标,而为了适配不同分辨率的设备,我们通常会需要@2x,@3x两套格式的图片,最明显的就是底部tabBar的图标使用。而对于那些有换肤需求的APP来说,还需要多套图来匹配不同的主题。通过切图的方式制作图标,一方面加大了开发者和设计者的工作量,另一方面也会增大APP的体积。而使用iconfont的可以达到以下目的1.减小应用体积,字体文件比图片要小;2.图

2017-03-15 16:11:18 538

转载 iOS使用自定义字体的方法(内置和任意下载ttf\otf\ttc字体文件)

最近做了个有关阅读的应用,使用了自定义字体,学习了一下这方面的知识。1.首先是最简单也普遍的做法,打包内置字符库文件:把字体库文件添加到工程,如font1.ttf添加到工程,然后在工程plist添加一项Fonts provided by application,这是个数组,然后添加key item1,value就是刚才说的font1.ttf,如图:那么在工程里就可以直接使用

2017-03-14 16:09:06 4545

转载 实现图片下拉放大和导航栏头像缩放效果

效果如下:

2017-01-16 15:44:05 2244 2

原创 iOS - 关于图片压缩处理

图片的压缩其实是俩概念,1、是 “压” 文件体积变小,但是像素数不变,长宽尺寸不变,那么质量可能下降,2、是 “缩” 文件的尺寸变小,也就是像素数减少。长宽尺寸变小,文件体积同样会减小。这个 UIImageJPEGRepresentation(image, 0.0),是1的功能。这个 [sourceImage drawInRect:CGRectMake(0,0,targetWidt

2017-01-11 11:11:30 388

转载 关于iOS数据解析小数丢失精度的问题AFNetworking

目前发现出现BUG的条件是两位数或者一位数,且带两位小数,类型还必须是float//两位数:十位必须是7、8、9;个位数随意,一位数的个位数也必须是789//两位小数:第一位数随意;第二位数必须是0下面是正常请求。 NSURLSessionDataTask*task = [manager POST:httpStr parameters:secureDic progress

2017-01-10 18:36:26 3370

原创 好用的工具箱软件收藏

GIF录屏软件 LICEcap   https://pan.baidu.com/s/1geXntOf

2016-12-20 23:31:42 499

原创 iOS的automaticallyAdjustsScrollViewInsets属性

我在控制器的view上加了一个横向滚动导航按钮组件,但是按钮却显示不出来加上这句 self.automaticallyAdjustsScrollViewInsets = NO; // iOS7在Controller中新增了这个属性: // automaticallyAdjustsScrollViewInsets,当设置为YES时(默认YES),如

2016-11-10 14:56:15 341

原创 Xcode编译警告Assigning to 'id<XXXDelegat> ——Nullable' from incompatible type 'XXXView *const_strong'

编译报警告可能是 自定义分类使用协议时出现与父类协议的冲突解决方法如下:

2016-10-11 17:37:23 7981 2

原创 Xcode报编译器警告:Pointer is missing a nullability type specifier(_Nonnull..

升级到Xcode8.0时,发现新建的一些方法会提示警告Google发现这是Xcode 6.3的新特性,即nullability annotations,以前自己没注意到。。。Nullability Annotations我们都知道在swift中,可以使用!和?来表示一个对象是optional的还是non-optional,如view?和view!。而

2016-10-11 11:07:20 4387

原创 iOS记录0822

1. 在xib或者storyBoard中,拖出来的UILabel等带有text的组件,当text文本过长想换行显示时,\n 是没有效果的,通过代码是有效的,要想在xib和storyBoard中显示换行,可以通过组合键option + 回车。

2016-08-22 23:08:23 308

原创 CocoaPods报错:The dependency `AFNetworking ` is not used in any concrete target

更新第三方插件版本时终端pod install时出错,出错如下: 出错原因:出这个错是告诉我们,我们所用的库没有指定target,它不知道用在哪里,所以就给报错了 权威解决在cocoapods官网地址解决方案: 1.通过终端打开项目的Podfile文件 $open -e Podfile2.在Podfile中指定target为所要更新的项目名,别忘结尾加end 3.保存关闭,再执

2016-08-02 16:47:56 581

原创 Xcode真机调试出现“* is busy: Processing symbol files”

Xcode真机调试出现“* is busy: Processing symbol files”引子: Xcode真机调试的时候,点击运行,出现:* is busy: Processing symbol files。解决方法: 1、尝试重新拔插测试设备。 2、重启Xcode尝试。 3、重启手机尝试。。

2016-08-02 16:24:24 3535

原创 推理题及解析

前几天看到一些行测的逻辑推理题,挺有意思。记录一下。小黄、小白、小蓝三个好朋友相约去春游,每人背个背包,忽然他们中间背着白背包的人说:“真是有趣,我们三个人的背包,一个是白的,一个是黄的,一个是蓝的,可是没有一个人的背包颜色跟自己的姓所表示的颜色相同。”小黄立即接着说:“是啊 ” 请问:小蓝的背包是什么颜色的? (A) 蓝色 (B) 黄色 (C) 白色 (D) 无法判断老

2016-07-27 08:02:42 936

转载 本地化下按首字母分组排序的神器——UILocalizedIndexedCollation

最近在整一个很简单的通讯录相关的项目,通讯录当然就少不了按首字母或者汉字拼音首字母分组排序索引。因为按照我一贯的的做法,都是想要做成更通用的、支持本地化的,所以这就纠结了,世界各地的语言啊我去,我顶多也就认识中文和英语,这就不能用以前的那些比如把汉字转成拼音再排序的方法了,效率不高不说,对其他国家的本地化更是行不通。一个偶然的机会,我才发现SDK里已经提供了一个实现此功能的神器——UILocali

2016-06-26 14:50:40 600

转载 NSTimer和Runloop的关系

什么是NSTimer ?“A timer provides a way to perform a delayed action or a periodic action. The timer waits until a certain time interval has elapsed and then fires, sending a specified message to a spe

2016-06-25 08:55:15 646

原创 面试之我见

这两天去面试,遇到了好多基础题却答不上来,可能由于紧张脑子短路,事后回忆大致都能想起来,看来能自若的表达真是太重要了。这方面我要多加强。1.atomic和nonatomic的区别

2016-06-23 23:47:12 247

原创 面试题-二进制&

之前论坛看到一个面试题,很基础的考察按位符运算,总结如下:概念& 按位与 只有对应的两个二进位均为1时,结果位才为1,否则为0。 举例:比如9&5,其实就是1001&101=1,因此9&5=1规律:二进制中,与1相&就保持原位,与0相&就为0面试题int Fun(int nValue){int nCount = 0;while (nValue){n

2016-05-11 14:40:38 537

转载 进行iOS代码调试之LLDB调试器

配合LLDB调试器进行iOS代码调试       在一款完整iOS移动应用的开发中,代码的调试和编写占着同等重要的地位。Xcode默认使用LLDB作为代码调试器,LLDB功能丰富且强大,恰当的使用它,可以帮助开发者事半功倍的完成代码调试的工作。1.expression代码执行指令        关于LLDB调试器,最常用的指令应该是p与po了,开发者常用这两个命

2016-04-24 23:45:16 670

原创 项目开发中遇到的一些问题纪录

一, iPhone手机升级最新系统后,Xcode在真机上编译运行时,可能会报错提示原因是Xcode的DeviceSupport里面缺少了最新的iOS版本的SDK. 解决办法:更新Xcode到最新版本,但速度太慢,有耐心和时间可以。直接把缺少的SDK导进去。步骤如下:打开Finder找到应用程序文件夹在里面找到XCode点击XCode,右键,显示包内容

2016-04-24 22:24:43 512

原创 UIImage渲染模式显示图片本身颜色

AA啊

2016-03-15 23:49:23 4085

转载 iOS 页面自动布局-NSLayoutConstraint简介

使用AutoLayout之前需要知道以下两点:1.必须设置 translatesAutoresizingMaskIntoConstraints为NO。2.如果是viewControl则AutoLayout适配写在[- updateViewConstraints]中; 如果是view则AutoLayout适配写在[- updateConstraints]中。 方法:

2016-03-11 17:46:13 5081

原创 xib按比例添加约束做屏幕适配探讨(未完)

近期做UI时,要兼顾到不同屏幕手机的UI显示。美工给的标注图是基于iPhone6,所以对于左右边界距离的标注,要按比例来设定。否则,可能会导致在某些手机比如IP4下显示不全。对于手写代码可以通过frame的x,y值按IP6下的比例设定//视图的高度与宽度#define kScreen_Height [UIScreen mainScreen].bounds.size.heigh

2016-03-10 17:34:10 10956 4

原创 关于网络请求返回数据是nil的情况

根据网络请求返回的json数据,有可能后台返回的数据为空,得到(null)或者的返回值。此时若不对该类型数据做判断,后面(大多数情况下是当作字符串)用到时会报错,导致应用闪退。对指定返回值做判断:if(m_result==nil){     NSLog(@"返回值是nil");}还有就是:if([m_result isEqual:[NSN

2016-03-06 19:56:22 3602

转载 IOS TextField 输入银行卡号格式化(每四位中间空一格)

最近做的项目有关于银行卡号输入的情景设定,参照微信绑卡操作,输入卡号数字每隔4位空1位。由于赶进度,没细作研究,特此网上摘录的代码片段,如下:-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)

2016-03-06 19:51:09 4689

原创 jenkins系统搭建实现持续集成打包app(未完)

AA啊

2016-03-06 17:26:45 350

原创 Xcode里一个工程(Project)多个项目(target)做版本控制讨论

最近项目即将发布测试,考虑到更换发布证书,以及发布环境(PRD)和之前的开发环境(DEV),测试环境(STG)的某些配置不同,比如bundle ID,对应的听云的Apikey,高德地图的Apikey,消息推送的推送服务器地址不同等。我们用了两种方法进行处理,1.通过在.里h宏定义或者在对应文件里,判断是否是PRD,STG等来修改对应的key,例如#define baseURL [KSe

2016-03-06 14:32:37 1535

原创 插入数组越界问题的探索

今天编写程序运行时,遇到一个问题 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[

2015-12-29 00:28:46 1032

原创 Xcode7.0.1编译报错“You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE),”

Xcode6.3.1的项目 在Xcode7.0.1中编译遇到问题错误描述:ld: ‘/Users/**/Framework/SDKs/PolymerPay/Library/mobStat/lib**SDK.a(**ForSDK.o)‘ You must rebuild it with bitcode enabled (Xcodesetting ENABLE_BITCOD

2015-11-06 04:06:01 473

原创 编译问题:App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecur

今天遇到一个问题,在Xcode6.3.2 上程序运行没问题模拟器正常显示,但换到Xcode7.0.1上 会报错错误描述:App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be conf

2015-10-25 17:16:10 632

转载 OC内存管理

OC内存管理一、基本原理(一)为什么要进行内存管理。由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空间,比如回收一些不再使用的对象和变量等。管理范围:任何继承NSObject的对象,对其他的基本数据类型无效。本质原因是因为对象和其他数据类型在系统中的存

2015-07-12 22:48:27 359

转载 封装自定义控件的sdk(创建静态库static library)

在项目开发的过程中,经常使用静态库文件(SDK,俗称.a文件)。例如两个公司之间业务交流,不可能把源代码都发送给另一个公司,这时候将私密内容打包成静态库,别人只能调用接口,而不能知道其中实现的细节。简介:库是一些没有main函数的程序代码集合。除了静态库,还有动态链接库,他们之间的区别是:静态库可以编译到我们的执行代码中,应用程序可以在没有静态库的环境中运行;动态库不能编译到我们的

2015-07-09 22:35:45 1096

原创 网络七层协议

- 外文名 Open System Interconnection - 英文缩写 OSI - 属 性 :开放式系统互联参考模型OSI模型有7层结构,每层都可以有几个子层。 OSI的7层从上到下分别是 7 应用层 Application 6 表示层 Presentation 5 会话层 Session 4 传输层 Transport 3 网络层 Network

2015-07-09 22:34:34 821

转载 OSI七层协议与TCP/IP四层协议的比较

TCP/IP:数据链路层:ARP,RARP网络层: IP,ICMP,IGMP传输层:TCP ,UDP,UGP应用层:Telnet,FTP,SMTP,SNMP.OSI:物理层:EIA/TIA-232, EIA/TIA-499, V.35, V.24, RJ45, Ethernet, 802.3,802.5, FDDI, NRZI, NRZ, B8ZS数据链路层:Fra

2015-07-09 22:33:13 1964

实现图片下拉放大和导航栏头像缩放效果

下拉上滑时图片缩放

2017-01-16

空空如也

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

TA关注的人

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