翻译自苹果官方文档:Understanding and Analyzing Application Crash Reports   nimo: 这篇长达1w多字的文章,大概前后翻译了一个月,“写”了三遍:第一遍是直译,第二遍是把直译改成程序员看着舒服的“行话”,第三遍是把原文里说的过于抽象或者简单的部分加上我的注解(大家看见所有以nimo开头的部分)。 文章发布后我才发现,这并不是针对iOS Crash report唯一的翻译版本。哪篇翻译的更好这个见仁见智,但我希望这篇是翻译的最用心的版本。 当app发…

2022年9月23日 0条评论 100点热度 0人点赞 帮助教程 阅读全文

介绍:C系列对于nullable的解释: nullable C 渊源:在Xcode6.3中使用了双下划线的版本,但是由于和第三方库的潜在冲突,所以苹果在Xcode 7 中修改为单下划线+首字母大写;后续为了和旧版本Xcode兼容,继续使用双下划线的版本,也就是两种是等价的。 Apple Swift 博客 区别:区别在于单下划线和双下划线需要放在类型定义之后,而非下划线的需要放在类型定义前。 nonnull,nullable,null_unspecified _Nonnull,_Nullable,_Null_unsp…

2022年4月27日 0条评论 670点热度 0人点赞 帮助教程 阅读全文

在Objective- C中进行控制台po相应对象时,可以直接格式化输出回显到控制台中,但在Swift中直接po对象,输出的格式都有,但对应实际开发来说其实并不友好,所以我们就需要能更直观的格式打印 示例数据: {"stationIds":907,"deviationSource":2,"clientIds":"3,1","remark":"She","projectIds":"56,55","deviationType":"1","productLineIds":"1084","imgList":[{"id":2…

2022年4月11日 0条评论 945点热度 0人点赞 帮助教程 阅读全文

实际页面数据展示过程中,我们可能需要对UILabel的内边距进行调整,如UIButton的UIEdgeInsets设置一样,来达到对UILabel进行边框以及内容Padding的设置;   一般情况四种解决方法  使用UIButton来代替需要特殊显示的UILabel,这样解决不是很好  创建一个UIView作为UILabel的背景视图,在UIView进行边框以及UILabel与其内外边距的处理,这种解决方案也不是很好  使用YYKit框架,效果不错,但是不是很有必要  在UILabel的基础上自定义一个…

2022年4月2日 0条评论 1305点热度 0人点赞 帮助教程 阅读全文

本次加载方式的展示分为Objective-C与Swift方式,两种的使用方式都是差不多的;如果有不对的地方还信指正。   先这么多,后续在添加

2022年3月31日 0条评论 714点热度 0人点赞 帮助教程 阅读全文

结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member) 像 int、float、char 等是由C语言本身提供的数据类型,不能再进行分拆,我们称之为基本数据类型;而结构体可以包含多个基本类型的数据,也可以包含其他的结构体,我们将它称为复杂数据类型或构造数据类型。 结构体的定义 /** * 定义一个结构体, 结构体本质上也是一种数据类型 * 类型是Books的结构体 */ struct Books { char title[50]; cha…

2021年8月24日 0条评论 1119点热度 0人点赞 帮助教程 阅读全文

为了能够第一时间发现程序问题,应用程序需要实现自己的崩溃日志收集服务,成熟的开源项目很多,如 KSCrash,plcrashreporter,CrashKit 等。追求方便省心,对于保密性要求不高的程序来说,也可以选择各种一条龙Crash统计产品,如 Crashlytics,Hockeyapp ,友盟,Bugly 等等。 是否集成越多的Crash日志收集服务就越保险? 自己收集的Crash日志和系统生成的Crash日志有分歧,应该相信谁? 为什么有大量Crash日志显示崩在main函数里,但函数栈中却没有一行自己的…

2021年6月4日 0条评论 1367点热度 0人点赞 帮助教程 阅读全文

攻易防难,唯有缜密、多层的防护网络才能可靠的保护我们iOS应用程序的安全。那么,一个完善的iOS应用安全防护框架都要写哪些东西呢? 首先,先梳理一下常见的逆向及攻击工具。 iOS应用逆向常用工具 Reveal Cycript Class-dump Keychain-Dumper gdb iNalyzer introspy Fishhook removePIE IDA pro or Hopper snoop-it iDB  Charles SSL Kill Switch 裸奔app的安全隐患 一部越狱的iOS设备,外…

2021年6月4日 0条评论 1455点热度 0人点赞 帮助教程 阅读全文

当单继承不够用,很难为问题域建模时,我们通常都会直接想到多继承。多继承是从多余一个直接基类派生类的能力,可以更加直接地为应用程序建模。但是Objective-C不支持多继承,由于消息机制名字查找发生在运行时而非编译时,很难解决多个基类可能导致的二义性问题。 不过其实 Objective-C 也无需支持多继承,我们可以找到如下几种间接实现多继承目的的方法: 消息转发 delegate和protocol 类别 消息转发 当向someObject发送某消息,但runtime system在当前类和父类中都找不到对应方法的…

2021年6月4日 0条评论 1329点热度 0人点赞 帮助教程 阅读全文