自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 常见的异常崩溃二

1、越界问题,包括数组越界(objectAtIndex:)、字符串越界(characterAtIndex:); 异常显示:NSRangeException: -[__NSArrayI objectAtIndex:]: index 10 beyond bounds [0 .. 9]'; ...

2018-10-10 11:15:48 154 0

原创 常见的线上异常崩溃一

一.UITableView reloadData的崩溃: [tableView reloadData]后当需要立即获取tableview的cell、高度,或者需要滚动tableview,那么直接在reloadData后执行代码是会有问题的。(如 在项目中用到scrollToRowAtIndexP...

2018-10-10 11:14:29 205 0

原创 ios 获取当前准确时间

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

2018-10-10 11:12:38 2148 0

转载 iOS 崩溃日志 Backtrace的符号化

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

2017-04-13 18:39:15 795 0

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

最近的项目里有个关于创建多个uiwindow时使用keywindow出现的bug。 有个任务是在打开信息展示时,要求不被任何东西遮挡。这里设计方案是添加一个新的HXUIWindow继承与UIWindow。测试时打开了HXUIWindow显示在屏幕上,执行打开 弹框 按钮(uiactionshee...

2017-04-06 09:16:22 9434 0

转载 iOS 简单理解类的本质

1.类也是个对象 类是一个对象是Class类型的对象简称类对象Class类型的定义 // 一个任意的类型,表示一个Objective-C类 typedef struct objc_class *Class; 类名就代表着类对象,每个类只有一个类对象 获取类对象 ...

2017-03-24 14:12:52 333 0

转载 类的本质-类对象

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

2017-03-24 14:07:53 311 0

转载 理解“类对象”的用意

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

2017-03-24 14:06:32 330 0

转载 Cobub文档

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

2017-03-10 16:55:01 423 0

转载 CFBundleURLType 与 LSApplicationQueriesSchemes 的区别

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

2017-03-10 16:52:07 1473 0

转载 sizeof()解析

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

2017-03-10 16:51:22 344 0

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

在APP提交app store审核时,以下这些坑你是可以直接避免的。蝉大师在知乎整理出在APP提交审核时要注意的事情,让自身应用顺利上线。   1.软件名字冲突。提交时发现有软件名字一样。丫停的。只能换。想好软件名字搜一下先。 2.等级评定,娱乐相关所以不要你勾选后发现4+可以。...

2017-03-10 16:48:39 1257 0

转载 NSString 剪切一个字符串 deleteCharactersInRange

NSMutableString   为可变的字符串     NSString       为不可变的字符串 - (void)viewDidLoad {     NSMutableString *a = [[NSMutableString  alloc] init...

2017-01-06 16:42:16 746 0

转载 oc消息转发机制

Class 类型对象 OC本身是一种强类型语言,但其运行时功能让它又有了动态语言的特点。OC中对象的类型和对象所执行的方法都是在运行时阶段进行查找并确认的,这种机制被称为动态绑定。想要弄清楚运行时如何能够实现动态绑定机制,首先要了解OC中对象的本质。 OC是C语言的超集,所以OC中面向...

2017-01-05 16:52:59 292 0

转载 尾调用优化

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

2016-12-29 15:27:40 263 0

转载 重载hash与isEqual:方法

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

2016-12-29 11:02:37 504 0

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

关联     关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。     关联特性只有在Mac OS X V10.6以及以后的版本上才是可用的。 在类的定义之外为类增加额外的存储空间     使用关联,我们可以不用修改类的定义而为其对象增加存储空间。这在我们无法访...

2016-12-28 11:27:44 190 0

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

为什么要有isEqual方法? isEqual方法的作用大家肯定是知道的: 判断两个对象是否相等 但是判断相等不是已经有==运算符了么, 为什么还要isEqual方法? 这是因为: 对于基本类型, ==运算符比较的是值; 对于对象类型, ==运算符比较的是对象的地址(即是否为...

2016-12-26 14:21:54 2419 0

转载 __NSTaggedPointerString 转码问题

__NSTaggedPointerString 这个类型是标签指针字符串,这是苹果在 64 位环境下对 NSString,NSNumber 等对象做的一些优化。简单来讲可以理解为把指针指向的内容直接放在了指针变量的内存地址中,因为在 64 位环境下指针变量的大小达到了 8 位足以容纳一些长度...

2016-12-22 14:44:31 974 0

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

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

2016-12-15 17:40:16 2031 0

转载 iOS开发——创建你自己的Framework

如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件。然而,这种方法并不是很优雅。它会暴露所有的实现细节,而这些实现你可能并不想开源出来。此外,开发者也可能并不想看到你的所有代码,因为他们可能仅仅希望将你的这份漂亮代码的一部分植入自己的应用中。 另一种方法是将你的代码编译成静态库(...

2016-12-15 16:43:34 267 0

转载 关于静态库、动态库的区别汇总

linux中静态库和动态库的区别 一、不同 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。  1. 静态函数库     这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目...

2016-12-15 15:40:01 189 0

转载 Xcode中的 workspace, project, target, scheme

最近在做SDK兼容性测试发现一个问题,就是编译出来的SDK,在iOS8以下的系统中不能用。查了下,发现是编译设置错了,虽然我target设置的是支持iOS6以上的,但是工程设置的还是iOS8以上。xib文件编译的版本是根据project设置,而不是target,这个也是为什么在低于iOS8中不能用...

2016-12-09 15:59:51 236 0

转载 compile Sources 和 Copy Bundle Resources的区别

CopyBundle Resources 主要是一些资源文件会被打包的时候会被放入app中。 我见过的内容有: xib文件,图片资源,xxxSDK.bundle,html文件,js文件。 我曾经碰到一个问题就是我在模拟器和设备中调试的时候都可以运行hmtl和js文件。可是打包给客...

2016-12-07 17:27:10 1949 0

转载 C语言中.h和.c文件解析(很精彩)

简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:       1.预处理阶段   2.词法与语法分析阶段   3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.o...

2016-12-07 17:23:13 267 0

转载 xcode添加文件时的勾选解析

在开发iOS项目的时候需要导入第三方的库文件,但是通过Xcode导入第三方源文件的时候会提示一些信息,不知所以然。 现在看到的文档都是针对Xcode3的,针对Xcode4的说明很少,现在分享出来。 官方说明文档http://developer.apple.com/library/mac/#qa...

2016-12-07 15:05:03 1016 0

转载 关于Xcode导入文件夹的2种选择

第一种:勾选Create groups 一、使用Create groups 我们在项目中可以手动添加一个groups(右键点击选择New Group),但是手动添加的groups实际上并不会存在于项目的目录中,被添加进groups中的文件仍在位于它原来所在的位置,但从外部引入进来的group...

2016-12-07 14:55:07 620 0

转载 Xcode项目引入外部文件夹,不能引用问题

最近在处理一些工程时候,偶尔注意到,工程文件里面添加了一些新的样式图标。什么样子呢,先看图,赫赫。   工程中的蓝色文件夹和以前习惯的黄色文件夹是不是不太一样。 今天简单总结一下Folder References and Groups 参考文件夹和分组 1. Group 分组 在xCod...

2016-12-07 14:53:51 1824 0

转载 ScrollView 与 Autolayout

学 Autolayout,当涉及到 ScrollView 时,很多人面对满屏幕红色错误不知所措,为什么明明以前没问题的约束到了这儿就成了错误。 比如下面这种情况: 一个蓝色的 UIView,设其长宽约束分别为 210,200。上、左和右间距为 55。如此设置这个 View 的位...

2016-12-06 15:40:50 247 0

转载 iOS中 @synthesize 和 @dynamic

在声明property属性后,有2种实现选择 @synthesize 编译器期间,让编译器自动生成getter/setter方法。 当有自定义的存或取方法时,自定义会屏蔽自动生成该方法 @dynamic 告诉编译器,不自动生成getter/setter方法,避免编译期...

2016-12-05 14:25:09 179 0

转载 Core Data的理解

一、基础概念深入 1.NSManagedObjectContext 被管理数据上下文就像便笺簿 当从数据持久层获取数据时,相当于把这些临时的数据拷贝写在便笺簿上,然后就可以随心所欲的修改这些值。 通过上下文,可以对数据记录NSManagedObject进行添加删除更改,记录...

2016-12-01 09:55:56 228 0

转载 苹果退出有两种方式:exit(0);和abort();

现在有的人用着苹果手机却拿安卓手机的眼光来用,非要弄一个退出app的控件出来。 苹果退出有两种方式:exit(0);和abort(); exit和abort都是终止程序执行退出的处理函数,其中exit是正常退出,abort是异常退出,退出时会输出错误信息,然后再调用exit退出。 用户体验来...

2016-11-30 17:28:45 3665 0

转载 [Xcode 7.2]Xcode菜单栏之你不知道的那点事

本文调研Xcode的版本是 7.2,基本是探索了菜单的每一个按钮。虽然从xcode4一直用到了xcode7,但是一般都只是用了一些基础的功能,其实菜单的按钮并不都是没有用,而是很有用只是你不知道罢了。 下面划了删除线的选项是太基础的选项可以忽略,标红的选项...

2016-11-24 11:12:14 1457 0

转载 在Xcode中使用Git进行源码版本控制

在应用程序开发过程中,很重要的一部分工作就是如何进行源码的版本控制。当代码出现问题时,我们就需要将代码恢复到原先正常的版本。如果是多个人共同开发一个项目,那么代码的控制就会非常复杂。幸运的是,开发者不需要自己控制这些,因为有专门的软件来负责,叫做版本控制系统。 版本控制系统,或者说修改控制系...

2016-11-23 11:40:48 289 0

转载 Xcode7中你一定要知道的炸裂调试神技

Xcode7中苹果为我们增加了两个重要的debug相关功能。了解之后觉得非常实用,介绍给大家。 1.Address Sanitizer: 妈妈再也不用担心 EXC_BAD_ACCESS? EXC_BAD_ACCESS一直是很多开发者的噩梦,因为这个错误很不直观,出现后往往要花很...

2016-11-23 09:41:47 205 0

转载 coreData初步认识

coreData初步认识 根据这片文档可以自己初步建立一个coreData,进行简单的数据的增删改查。 1、新建工程,记得勾选Use Core Data 2、建立好以后可以看到xxx.xcdatamodeld,在这里可以添加实体和实体的属性。需要注意的是:实体名字必须以大...

2016-11-22 15:13:04 191 0

转载 Auto property synthesis will not synthesize property ‘delegate’;it will be implemented by its superc

1.  Auto property synthesis will not synthesize property 'title'; it will be implemented by its superclass, use @dynamic to acknowledge int...

2016-11-22 13:53:20 226 0

转载 在代码中使用Autolayout – intrinsicContentSize和Content Hugging Priority

我们继续来看在代码中使用Autolayout的话题。先说intrinsicContentSize,也就是控件的内置大小。比如UILabel,UIButton等控件,他们都有自己的内置大小。控件的内置大小往往是由控件本身的内容所决定的,比如一个UILabel的文字很长,那么该UILabel的内置大小...

2016-11-17 16:43:24 241 0

转载 自动适应cell的高度

1. 如何自动适应cell的高度 在IOS的布局中,计算和适应cell的高度是个经典的问题, 在frame时代,我们都知道用sizeWithFont: 先计算出文字的高度,然后通过计算得出cell的高度,然后赋予heightForRow:。 那在Autolayout时代如何计算cell...

2016-11-17 16:29:46 383 0

转载 description方法

description基本概念 1.NSLog(@"%@", objectA);这会自动调用objectA的description方法来输出ObjectA的描述信息. 2.description方法默认返回对象的描述信息(默认实现是返回类名和对象的内存地址) 3.descr...

2016-11-14 17:29:17 303 0

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