1 醉卧南柯

尚未进行身份认证

一往直前,水滴石穿

等级
TA的排名 34w+

iOS中的 uncaught exception 主要有哪些

iOS中的错误分为NSError和NSException,其中NSError用于可恢复的错误,而NSException则是不可恢复的错误,对于NSException我们可以通过NSSetUncaughtExceptionHandler来进行崩溃的捕获获取,那么常见的NSException有哪些呢?数组越界访问NSArray*array=@[@"2"];NSString...

2019-08-22 15:28:42

C++文件打包成framework如何接入使用

最近遇到一个问题,将含有C++文件的代码打包成framework时,打包时正常,但是不能正确接入到项目中使用,一直报如下错误Undefinedsymbolsforarchitecturearm64:,referencedfrom:排查了很久,确定头文件和framework的路径都没有问题后,确定是打包引入的C++文件所导致的,如果坚持要包含C++并且打包成framework,可...

2019-08-19 11:02:15

Cocoapods的相关知识点

最近需要在cocoapods上发布SDK,虽然在之前的公司也弄过本地私有库,但是相比较发布到Cocoapods上还是有一些差别的,下面列举一些要点。验证本地podspec文件的合法性:podspeclintXXX.podspec验证合法性通过之后将其推送到cocoapods上,podtrunkpushXXX.podspec需要注意的:邮箱的问题,首次推送会对注册的...

2019-08-14 13:46:09

逻辑表达式的合法性判断(包含小括号的匹配)-iOS

需求的由来:后台将过滤的功能放到客户端来做给定一个逻辑表达式,客户端本地做逻辑判断涉及到问题:1、逻辑表达式的合法性判断2、逻辑表达式如何转换求解...

2019-07-27 15:06:53

load 方法与initialize 方法的使用区别

调用时机的不同 load方法在程序启动编译时调用,initialize方法在使用类时调用是否能被分类覆盖如果分类中实现了load方法,不会覆盖类中的load方法,编译时类与分类都实现了load方法时会都调用,多个分类重写了load方法时,编译时都会调用各个分类的load方法,同时子类的load方法也不会影响initialize方法能被分类覆盖,一旦分类重写了...

2019-07-27 13:40:01

git 删除本地以及远程标签

1、删除本地以及远程仓库的标签删除本地仓库标签:gittag-dtagName删除远程仓库标签:gitpush--deletetagtagName注:tagName为待删除标签名称2、重新打标签并推送到远程仓库重新在当前本地分支打标签:gittagnewTagName将标签推送到远程仓库:gitpush--tags注:newTagName为新的标签名称...

2019-07-15 11:15:56

.a静态库与framework库,以及库的添加

Xcode依赖的第三方库包括:.a静态库(StaticLibrary).framework动态库(DynamicLibrary)并不能简单的认为.framework后缀的就是“动态库”,因为在iOS/macOS开发中,.framework又分为“静态framework”和“动态framework”静态.framework可以理解是:.a静态文件...

2018-12-03 21:33:13

基于sqlite3创建数据库-iOS

SQlite简介sqlite是一个轻量级的跨平台的数据库,实现了自给自足的、无服务器、零配置的、事务性的SQL数据库引擎。SQlite引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQlite直接访问其存储文件。SQlite命令与关系数据库进行交互的标准SQlite命令类似于SQL,包括CREATE、SELECT、INSERT、UPDATE、DELETE和DROP,基于...

2018-11-28 10:45:02

iOS中使用结构体与位域,大小端数据转换

如何在iOS中使用结构体数据类型在定义结构体时,如果不涉及到OC中的对象时,可以直接将结构体当作成员变量属性使用,一旦在结构中定义了OC中的对象,编译会报错,提示“ARC时禁止在结构体中定义OC的对象”,主要原因在于ARC无法管理结构体中的OC对象的生命周期以内存。可以从以下几个方面分析:ARC在是编译器特性,编译时在合适的位置插入对象的内存管理代码。由于标准的C语言结构体struct没有析...

2018-11-27 13:23:34

判断小数点后几位:整数的取模运算 (%) 与小数的取模运算(fmod)

整型取模运算符:%判断一个整数A是否为某一个整数B的倍数时,我们可以通过整数的取模运算符%来判断,A%B等于0时,则A为B的倍数,反之则不是,其中A、B必须为整数型数值并且B不能为0...

2018-11-26 18:02:38

关于 charset 的几种编码方式

经常遇到charset=gb2312、charset=iso-8859-1、charset=utf-8这几种编码方式,它们有什么不同,看下面的图编码方式含义charset=iso-8859-1西欧的编码,英文编码charset=gb2312中文编码charset=utf-8世界通用语言编码charset=big5...

2018-09-12 17:26:25

use_frameworks!的作用、静态库与动态库、tbd

首先明确一下几个概念从iOS8/Xcode6开始,苹果允许使用动态库通过cocoapods管理应用程序时,在Podfile文件中,use_frameworks!的使用区别如下:使用use_frameworks!时dynamicframeworks方式->.framework1、cocoapods会生成对应的frameworks文件2、在LinkBina...

2018-09-12 00:05:35

copy与mutableCopy的深浅拷贝

copy与mutableCopy

2018-09-11 10:49:32

又见block(三):block实质

首先来看看block截获自动变量(外部局部变量)的几种情况block“带有自动变量(截获局部变量)”的含义在于具有“截获自动变量值”的能力ARC中常见的block用法场景如下:由以上结果总结如下:默认block的类型是NSGlobalBlock,一旦在block中引用自动变量(包括OC对象),无论是否修改,block类型变为NSMallocBlock默认情况下,在blo...

2018-09-08 17:18:43

又见block(七):截获对象

在OC中,C语言结构体不能含有__strong修饰符的变量,因为编译器不知道什么时候初始化和废弃C语言结构体,不能很好的管理内存。OC的运行时库能够准确地把握block从栈复制到堆以及堆上的block被废弃的时机,所以block结构体中即使含有__strong或者__weak修饰符的变量,也可以恰当地进行初始化和废弃。在__main_block_desc_0结构体中增加的成员变量...

2018-09-08 12:16:33

又见block(六):block存储域与__block变量存储域

本文主要讨论block的存储域与__block变量的存储域(即存储位置)我们知道它们在转换成C++源代码时都被转换成了结构体类型,都是在栈上生成的结构体实例名称实质block栈上block的结构体实例__block变量栈上__block变量的结构体实例前面我们说到block其实也是一种OC对象,其对应的类以及存储位置有以下几种...

2018-09-07 00:13:05

如何判断当前线程是主线程

在iOS中如何准确判断当前线程是主线程

2018-09-05 23:04:14

CoreAnimation(二):寄宿图

CALayer的寄宿图:图层中包含的图层contents属性contents是一个id类型,但实际上它需要一个CGImage类型才能正常显示,UIImage有一个CGImage属性,返回一个CGImageRef类型,但是这个类型不是一个Cocoa对象,而是一个CoreFoundation类型,因此需要进行实现如下转换。layer.contents=(__bridgei...

2018-09-05 14:50:34

CoreAnimation(一):关于图层树(既生瑜,何生亮)

CoreAnimation是一个复合引擎,它的职责就是尽可能快地组合屏幕上不同的可视内容,这个内容是被分解成独立的图层,存储在一个叫做图层树的体系中,图层树是UIKit以及iOS应用程序中屏幕上所能看见一切的基础。视图:UIView及其子类一个视图就是在屏幕上显示的一个矩形块,例如图片、文字或视频。能够拦截处理类似鼠标点击或触摸手势等用户输入。视图在层级关系中可以相互嵌套。父视...

2018-09-04 22:35:52

又见block(四):block捕获自动变量

首先来看看block截获自动变量值的几种情况

2018-09-04 09:54:11

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。