4 HX_lei

尚未进行身份认证

暂无相关描述

等级
博文 121
排名 4w+

常见的异常崩溃二

1、越界问题,包括数组越界(objectAtIndex:)、字符串越界(characterAtIndex:);异常显示:NSRangeException: -[__NSArrayIobjectAtIndex:]:index10beyondbounds[0..9]';方案:在根据下标取值时,先进行边界检查判断,如果没有越界方可取值。2、数据集合类型,如字典、数组中插入空n...

2018-10-10 11:15:48

常见的线上异常崩溃一

一.UITableView reloadData的崩溃:[tableViewreloadData]后当需要立即获取tableview的cell、高度,或者需要滚动tableview,那么直接在reloadData后执行代码是会有问题的。(如 在项目中用到scrollToRowAtIndexPath,但程序一旦调用scrollToRowAtIndexPath就出错,经分析是数据源和tablev...

2018-10-10 11:14:29

ios 获取当前准确时间

获取当前时间:(之前做倒计时时发现一些bug,这里对获取当前时间进行总结)启动app时发送服务器时间请求获取当前最新时间,存储到内存;退到后台或锁屏手机后再进入前台情况下最新时间:这里处理的方案是将(启动app时获取到的服务器时间-当时获取服务器时间时处系统运行时长+现在的系统运行时长)这里只要能得到系统运行时长即可:了解下ios关于时间的处理:1.NSDate对象...

2018-10-10 11:12:38

iOS 崩溃日志 Backtrace的符号化

iOS的崩溃日志配合dsym文件可以找到崩溃时的backtrace,这是解决崩溃的最重要的信息.如果是在同一台mac上打包,导入crashlog时候会自动将backtrace符号化,可以看到方法名,文件名和行号但是,有时候发版的包不是在你的mac上打包的,xcode找不到对应的符号表,backtrace没能符号化如下所示:LastExceptionB

2017-04-13 18:39:15

添加多个UIWindow时,使用keyWindow要注意一点

最近的项目里有个关于创建多个uiwindow时使用keywindow出现的bug。有个任务是在打开信息展示时,要求不被任何东西遮挡。这里设计方案是添加一个新的HXUIWindow继承与UIWindow。测试时打开了HXUIWindow显示在屏幕上,执行打开弹框按钮(uiactionsheet或uialerview),当弹框消失后,再执行向主页最外层添加一个view,这个时候应该会想到用[[

2017-04-06 09:16:22

iOS 简单理解类的本质

1.类也是个对象类是一个对象是Class类型的对象简称类对象Class类型的定义//一个任意的类型,表示一个Objective-C类typedefstructobjc_class*Class;类名就代表着类对象,每个类只有一个类对象 获取类对象//获取类对象两种方式person1和person2Classperson1=

2017-03-24 14:12:52

类的本质-类对象

1.本质类的本质其实也是一个对象(类对象)程序中第一次使用该类的时候被创建,在整个程序中只有一份。此后每次使用都是这个类对象,它在程序运行时一直存在。类对象是一种数据结构,存储类的基本信息:类大小,类名称,类的版本,继承层次,以及消息与函数的映射表等类对象代表类,Class类型,对象方法属于类对象如果消息的接收者是类名,则类名代表类对象所有类的实例都由类对象生成,类对象会把实例的isa的值

2017-03-24 14:07:53

理解“类对象”的用意

第14条:理解“类对象”的用意Objective-C实际上是一门极其动态的语言。第11条讲解了运行期系统如何查找并调用某方法的实现代码,第12条则讲述了消息转发的原理:如果类无法立即响应某个选择子,那么就会启动消息转发流程。然而,消息的接收者究竟是何物?是对象本身吗?运行期系统如何知道某个对象的类型呢?对象类型并非在编译期就绑定好了,而是要在运行期查找。而且,还有个特殊的类型叫做id,它能

2017-03-24 14:06:32

Cobub文档

CobubRazor是一款开源的移动应用统计分析系统,您可以把它搭建在您自己的服务器上,收集并展现来自您的移动App(包括iOS,Android和WindowsPhone)的相关用户行为数据。CobubToaster是一个独立部署的移动应用推送解决方案。CobubRazor是一个免费开源的移动应用分析系统。用户可以自己建立服务收集移动应用的相关数据,分析并生成统

2017-03-10 16:55:01

CFBundleURLType 与 LSApplicationQueriesSchemes 的区别

CFBundleURLType:当前APP的scheme记录,通过schema可在其它App中打开当前AppLSApplicationQueriesSchemes是从iOS9时被引入的。用意:当前APP允许访问的APP有哪些,即白名单,需要通信双方均设置为对方的scheme,否则当调用对方App时,系统会告诉你Thisappisnotallowedtoquery

2017-03-10 16:52:07

sizeof()解析

最近发现,许多公司笔试题都有考查sizeof()的用法,所以借此机会,自己学习一下,做以总结。sizeof是运算符,可用于任何变量名、类型名或常量值,当用于变量名(不是数组名)或常量时,它不需要用圆括号。sizeof有两种用法:(1)sizeof(object)或sizeofobject        也就是对对象使用sizeof(2)sizeof(typename)

2017-03-10 16:51:22

APP提交审核时,这些坑你本可以直接避免

在APP提交appstore审核时,以下这些坑你是可以直接避免的。蝉大师在知乎整理出在APP提交审核时要注意的事情,让自身应用顺利上线。 1.软件名字冲突。提交时发现有软件名字一样。丫停的。只能换。想好软件名字搜一下先。2.等级评定,娱乐相关所以不要你勾选后发现4+可以。然并乱。必须17+走起3.支付上,要求用户即使换手机或卸载软件,所购买的物品还可以继续使用。

2017-03-10 16:48:39

NSString 剪切一个字符串 deleteCharactersInRange

NSMutableString  为可变的字符串    NSString      为不可变的字符串-(void)viewDidLoad{    NSMutableString *a=[[NSMutableString  alloc] initWithString:@"123456798"];    NSLog(@"\na:  

2017-01-06 16:42:16

oc消息转发机制

Class类型对象OC本身是一种强类型语言,但其运行时功能让它又有了动态语言的特点。OC中对象的类型和对象所执行的方法都是在运行时阶段进行查找并确认的,这种机制被称为动态绑定。想要弄清楚运行时如何能够实现动态绑定机制,首先要了解OC中对象的本质。OC是C语言的超集,所以OC中面向对象的功能在底层也是使用C语言来实现。我们在OC中使用的对象,通常指的是储存该对象内存地址的一个指针变

2017-01-05 16:52:59

尾调用优化

一、什么是尾调用?尾调用的概念非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。functionf(x){returng(x);}上面代码中,函数f的最后一步是调用函数g,这就叫尾调用。以下两种情况,都不属于尾调用。//情况一functionf(x){lety=g(x);returny;}

2016-12-29 15:27:40

重载hash与isEqual:方法

前言NSObject自带了hash与isEqual:方法,服务于具有hash表结构的数据结构。NSObject自带的hash函数相当于hash表中的f(key)函数中的key,这“唯一”的key需要用户自己产生,至于用什么算法由用户自己决定。 准备////Model.h//Hash////CreatedbyYouXianMingon

2016-12-29 11:02:37

[Objective-C]关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)

关联  关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。  关联特性只有在MacOSXV10.6以及以后的版本上才是可用的。在类的定义之外为类增加额外的存储空间  使用关联,我们可以不用修改类的定义而为其对象增加存储空间。这在我们无法访问到类的源码的时候或者是考虑到二进制兼容性的时候是非常有用。  关联是基于关键字的,因此,我们

2016-12-28 11:27:44

iOS开发 之 不要告诉我你真的懂isEqual与hash!

为什么要有isEqual方法?isEqual方法的作用大家肯定是知道的:判断两个对象是否相等但是判断相等不是已经有==运算符了么,为什么还要isEqual方法?这是因为:对于基本类型,==运算符比较的是值;对于对象类型,==运算符比较的是对象的地址(即是否为同一对象)注意:上述==运算符的说明适用于Objective-C和Java等不支持运算符重载

2016-12-26 14:21:54

__NSTaggedPointerString 转码问题

__NSTaggedPointerString这个类型是标签指针字符串,这是苹果在64位环境下对NSString,NSNumber等对象做的一些优化。简单来讲可以理解为把指针指向的内容直接放在了指针变量的内存地址中,因为在64位环境下指针变量的大小达到了8位足以容纳一些长度较小的内容。于是使用了标签指针这种方式来优化数据的存储方式。从他的引用计数可以看出,这货也是一个释放不

2016-12-22 14:44:31

iOS 静态库,动态库与 Framework 浅析

静态库与动态库的区别首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用。什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人看到源码,就需要以库的形式进行封装,只暴露出头文件。另外一种情况是,对于某些不会进行大的改动的代码,我们想减少编译的时间,就可以把它打包成库,因为库是已经编译好的二进制了,编译的时候只需要

2016-12-15 17:40:16
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!