iOS 知识点
文章平均质量分 61
番薯大佬
码农一枚
展开
-
APP提交审核-App Review
App Store 审核指南常见 App 拒绝情况App Review 支持原创 2018-07-06 16:24:28 · 2259 阅读 · 0 评论 -
真机联调总是弹窗提示macOS想要使用系统钥匙串
真机联调总是弹窗提示【macOS想要使用系统钥匙串】解决方法通过钥匙串,修改使用证书的访问控制权限。步骤1、打开钥匙串访问操作:系统—>证书—>展开用到的证书—>双击私钥步骤2、修改控制访问操作:访问控制—>允许所有应用程序访问此项目—>存储修改...原创 2020-04-02 17:39:43 · 7275 阅读 · 0 评论 -
iOS iPhone操作队列 VS Java线程池
引言在涉及多线程并发操作时,如何管理多线程对共享数据的访问以及防止线程间的死锁问题是个很重要的话题。在 Java 语言中,从Java 5 开始, Java 提供了自己的线程池 ThreadPoolExecutor 类;在 iPhone 中则提供了 NSOperationQueue 类进行多线程的管理和调度。 什么是线程池?线程池到底是怎么一回事呢?其实线程池的原理很转载 2017-02-07 16:05:47 · 705 阅读 · 0 评论 -
关于UI的开发是使用代码还是Xib
对于 UI 界面的编写工作,到底应该用 xib/storyboard 完成,还是用手写代码来完成?使用xib和storyboard的优点开发界面所见即所得,可以快速通过拖拽构造界面。你可以从 storyboard 中很方便地梳理出所有View Controller的界面间的调用关系。这一点对于新加入项目组的开发同事来说,比较友好。使用 Storyboard转载 2015-07-12 10:45:18 · 421 阅读 · 0 评论 -
布尔表达式的判断设置
在C语言中,应该把常量放在比较的左边。 因为在C语言中,布尔表达式存在一些特殊的问题,如果误把『==』写成了『=』而遇到麻烦,那么就可以考虑采用把常量和字面量放在表达式左边的编码方法。正确的写法:if (1 == i){}如果把『==』误写成『=』,编译器会报错,因为给常量赋任何值都是非法的。错误的写法:if (i == 1){}如果把『==』误写成『=』,编译器只会警告,原创 2015-06-14 00:58:33 · 2114 阅读 · 0 评论 -
Objective-C 深入理解 +load 和 +initialize
在 Objective-C 中,NSObject 是绝大多数类的基类。而在NSObject 中有两个类方法 load 和 initialize,那这两个方法是在什么时机被调用呢?父类、Category 的调用顺序又是怎样的呢?下面我们深入runtime 源码 来一起学习记录下。要是觉得中间部分繁琐,可以直接跳到文末查看结论。+load我们先来看 load 是什么时候被调用的,在转载 2016-04-09 18:55:41 · 1149 阅读 · 0 评论 -
宏定义中是使用 const(static) 还是 使用 define
const 和 define 在开发中常用来定义常量,这样做的好处是:使代码更易维护、提高代码的效率。1、constconst是C/C++中的一个关键字(修饰符), const一般用来定义一个常量, 既然叫做常量, 即以后再也不能修改其值。const 定义常量时,编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内原创 2016-05-19 15:42:50 · 3656 阅读 · 0 评论 -
iOS static标识
http://baike.baidu.com/link?url=Ghi98o0--21o9KXmNyqaqE4NibtYQOJ2WwexDRAUCzXAEn6jp3qX_IjHzA9U3gs_一、面向过程静态全局变量注意:全局变量和全局静态变量的区别1)全局变量是不显式用static修饰的全局变量,但全局变量默认是动态的,作用域是整个工程,在转载 2016-11-24 11:18:56 · 632 阅读 · 0 评论 -
iOS nil、NULL和NSNull 的使用
概念:nil是一个对象指针为空,Nil是一个类指针为空,NULL是基本数据类型为空。这些可以理解为nil,Nil, NULL的区别吧。1、nil用来给对象赋值(Objective-C中的任何对象都属于id类型),nil用于类指针赋值(在Objective-C中类是一个对象,是类的meta-class的实例)。2、NULL则给任何指针赋值,NULL和nil不能互换。转载 2016-11-24 11:14:14 · 410 阅读 · 0 评论 -
关于UI的开发是使用代码还是Xib
对于UI界面的编写工作,到底应该用 xib/storyboard完成,还是用手写代码来完成?一、使用xib和storyboard的优点1、开发界面所见即所得,可以快速通过拖拽构造界面。你可以从 storyboard中很方便地梳理出所有View Controller的界面间的调用关系。这一点对于新加入项目组的开发同事来说,比较友好。2、使用 Sto转载 2016-11-24 11:10:19 · 387 阅读 · 0 评论 -
property属性的setter、getter方法
通常在开发过程中,定义的property属性会自动生成setter和getter方法,开发者也无需再重写@synthesize xxx = _xxx。但有些时候,开发者会根据需要进行对property属性重写其setter方法、getter方法。在重写时,肯定会遇上报错提示:该变量没有定义。这时候,要解决这个问题,只需要加上语句"@synthesize xxx = _xxx"。这是因为原创 2016-11-16 00:19:08 · 1814 阅读 · 0 评论 -
Objective-C Runtime 运行时之六:拾遗
Objective-C Runtime 运行时之六:拾遗转载原址:http://blog.jobbole.com/79588/原文出处: 南峰子的技术博客 前面几篇基本介绍了runtime中的大部分功能,包括对类与对象、成员变量与属性、方法与消息、分类与协议的处理。runtime大部分的功能都是围绕这几点来实现的。本章的内容并不算重点,主要针对前文中对O转载 2016-04-09 17:36:37 · 727 阅读 · 0 评论 -
iOS系统中的字体(swift写法获取)
// swift写法获取func showAllFonts(){ let familyNames = UIFont.familyNames() var index:Int = 0 for familyName in familyNames { let fontNames原创 2016-09-27 16:44:04 · 2647 阅读 · 0 评论 -
Objective-C 编程风格指南
一、NYTimes Objective-C编程风格指南。来源:https://github.com/NYTimes/objective-c-style-guide这篇指南总结了纽约时报iOS开发团队的编程风格。欢迎大家在github中提供建议和pull请求。简介:以下是形成本编程指南所涉及到的Apple官方文档。如果本文有未尽之处,可以参考以下链接:转载 2015-02-28 11:32:47 · 966 阅读 · 0 评论 -
iOS UIApplication
很多时候,我们不需要关心这个类,我们很少继承这个类,偶尔会调用这个类的api来实现一些功能,但是不可否认,这个类是iOS编程中很重要的一个概念。UIApplication的核心作用是提供了iOS程序运行期间的控制和协作工作。每一个程序在运行期必须有且仅有一个UIApplication(或则其子类)的一个实例。回想一下我在前面的文章“main函数研究”的文章中提到的main函数的转载 2015-03-01 10:17:48 · 558 阅读 · 0 评论 -
关于Xcode上的Other linker flags
Targets选项下有Other linker flags的设置,用来填写XCode的链接器参数,如:-ObjC -all_load -force_load等。还记得我们在学习C程序的时候,从C代码到可执行文件经历的步骤是:源代码 > 预处理器 > 编译器 > 汇编器 > 机器码 > 链接器 > 可执行文件在最后一步需要把.o文件和C语言运行库链接起来,这时候需要用到ld命令。源文件经转载 2015-03-26 14:38:36 · 551 阅读 · 0 评论 -
BuildSettings中的Valid Architectures设置
参考iOS 中的 armv7,armv7s,arm64,i386,x86_64 都是什么?在项目配置中应该如何设置?概念理解ARMARM处理器,特点是体积小、低功耗、低成本、高性能,所以几乎所有手机处理器都基于ARM,在嵌入式系统中应用广泛。ARM处理器指令集armv6|armv7|armv7s|arm64都是ARM处理器的指令集,这些指令集都是向下兼容的,例如armv7指令集兼容...原创 2019-10-11 12:28:16 · 3017 阅读 · 0 评论 -
理解 Xcode 编译系统
转载任何 iOS 源代码在设备上运行之前都需要编译器的一系列处理,这个过程通常由 Xcode Build System 完成。在这篇文章中,我将介绍 Xcode Build System 的每一个部分。为何要学编译知识说说 OCLint 、SwiftLint 实现原理是怎样的?如何编写 Clang 插件?Obfuscator-LLVM 在 iOS 中如何实现混淆加固?iOS 中 Bit...转载 2019-09-03 11:14:37 · 266 阅读 · 0 评论 -
iOS的多target开发相似App
当多个APP项目功能大同小异,且大多数代码可以通用时,就需要在一个项目中通过设置不同的target进行开发。即功能代码类似,但应用名称、应用图标、启动图、应用包名和证书不相同。Demo多target使用注意事项1、区分不同的target文件配置,如:应用名称、包名、版本号、证书、描述文件、plist文件等2、target中的Preprocessor Macros中的宏定义,如:Versio...原创 2019-02-13 16:08:45 · 691 阅读 · 0 评论 -
修改bounds属性后的效果
UIView中的属性bounds默认的origin是x=0.0,y=0.0,且size中的宽高默认等于frame中size的宽高。当修改了bounds属性中的origin时,会影响到添加到其中的子视图frame中的origin;当修改了bounds属性中的size时,会影响到其自身frame中的size;// 初始化时的frameCGRectMake(20.0, 20.0, 200.0, 200...原创 2018-07-04 23:15:01 · 2021 阅读 · 0 评论 -
iOS开发框架:CocoaTouch/Media/CoreServices/CoreOS
原创 2018-05-16 09:06:57 · 1121 阅读 · 0 评论 -
Objective-C日志输出预处理宏
预处理宏1、函数:__func__ 使用 %s2、行号:__LINE__ 使用 %d3、文件路径:__FILE__ 使用 %s4、函数:__PRETTY_FUNCTION__ 使用 %s5、选择器:NSStringFromSelector(_cmd) 使用 %@6、对象类:NSStringFromClass([self class]) 使用 %@7、源文件名称:[[NSString stringW...原创 2018-05-16 08:58:19 · 263 阅读 · 0 评论 -
objc非主流代码技巧——小括号内联复合表达式
A compound statement enclosed in parentheses.来自《gcc官方对此的说明》,源自gcc对c的扩展,如今被clang继承。RETURN_VALUE_RECEIVER = {( // Do whatever you want RETURN_VALUE; // 返回值)};实例使用示例self.backgroundView = ({ ...原创 2018-04-03 14:19:51 · 349 阅读 · 0 评论 -
@property知多少
在类中定义属性时,总会使用到@property进行定义,下面就来说说@property的使用。 在使用过程中,如果需求公开且在其他类中使用时,通常会定义在.h头文件中;而如果只是该类自已需要使用,这时则会定义在.m实现文件中。 使用格式@property (参数1, 参数2, 参数3, ...) 参数类型 参数名称参数包括三个种类,七个属性,如下图所示。 在使用过程中,有几点需要注意:原创 2017-07-13 23:10:35 · 417 阅读 · 0 评论 -
iOS开发技能一览图
原创 2016-09-01 16:00:26 · 437 阅读 · 0 评论 -
iOS界面规范
原创 2016-09-05 16:33:10 · 341 阅读 · 0 评论 -
APP应用程序的生命周期
APP应用程序之所以有生命周期,是因为手机端的资源总是有限的,如果开启了一个APP应用就一直占用着手机资源而不释放,这样就会造成手机资源的消耗殆尽,也因此会对设备的电池、流量、用户交互体验造成影响。所以通过APP应用程序的生命周期,首先是更好的控制APP应用程序,其次是更好的控制及使用手机资源、用户交互体验。APP应用程序状态(1)Not running:未运行,即程序没启动(2)In原创 2016-07-05 17:58:14 · 1065 阅读 · 0 评论 -
设备常用框架framework
framework名称 framework说明 framework文档 Accelerate.framework 包含加速数学和DSP函数 http://developer.apple.com/iphone/library/documentation/Accelerate/Reference/AccelerateFWRef/index.html#/apple_ref/doc/uid原创 2016-06-25 16:56:47 · 3056 阅读 · 0 评论 -
事件响应链,点击屏幕时是如何互动的,事件的传递
对于IOS设备用户来说,他们操作设备的方式主要有三种:触摸屏幕、晃动设备、通过遥控设施控制设备。对应的事件类型有以下三种:1、触屏事件(Touch Event)2、运动事件(Motion Event)3、远端控制事件(Remote-Control Event)响应者链(Responder Chain)响应者对象(Responder Object),指的是有响应和处理事件原创 2016-05-19 17:53:55 · 941 阅读 · 0 评论 -
Objective-C Runtime
转载原址:http://blog.jobbole.com/79545/原文出处: 杨萧玉的博客(@杨萧玉HIT) 本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机。主要内容如下:引言简介与Runtime交互Runtime术语消息动态方法解析消息转发健壮的实例变量(转载 2016-04-09 17:18:03 · 462 阅读 · 0 评论 -
Objective-C Runtime 运行时之二:成员变量与属性
Objective-C Runtime 运行时之二:成员变量与属性转载原址:http://blog.jobbole.com/79570/原文出处: 南峰子的技术博客 在前面一篇文章中,我们介绍了Runtime中与类和对象相关的内容,从这章开始,我们将讨论类实现细节相关的内容,主要包括类中成员变量,属性,方法,协议与分类的实现。本章的主要内容将聚集在Run转载 2016-04-09 17:30:55 · 408 阅读 · 0 评论 -
Objective-C Runtime 运行时之一:类与对象
Objective-C Runtime 运行时之一:类与对象转载原址:http://blog.jobbole.com/79566/原文出处: 南峰子的技术博客 Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方转载 2016-04-09 17:31:48 · 527 阅读 · 0 评论 -
Objective-C Runtime 运行时之三:方法与消息
Objective-C Runtime 运行时之三:方法与消息转载原址:http://blog.jobbole.com/79574/原文出处: 南峰子的技术博客 前面我们讨论了Runtime中对类和对象的处理,及对成员变量与属性的处理。这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制。我们将详细讨论消息的发送及消息的转发。不过在讨论消息之前转载 2016-04-09 17:32:40 · 416 阅读 · 0 评论 -
Objective-C Runtime 运行时之四:Method Swizzling
Objective-C Runtime 运行时之四:Method Swizzling转载原址:http://blog.jobbole.com/79580/原文出处: 南峰子的技术博客 理解Method Swizzling是学习runtime机制的一个很好的机会。在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swi转载 2016-04-09 17:34:06 · 304 阅读 · 0 评论 -
iOS 获取正在运行的进程
转载原址:http://www.jianshu.com/p/ec27662c1557代码如下:.h@interfaceUIDevice (ProcessesAdditions)- (NSArray*)runningProcesses;@end.m#import"UIDevice+ProcessesAdditions.h"#转载 2016-04-09 17:53:38 · 2844 阅读 · 0 评论 -
instancetype代替id进行实例化
本文章翻译自官方文档使用instancetype关键字作为方法的返回值,能够返回一个类的实例。比如alloc,init等方法。在一个合适的地方使用instancetype取代id将使你的代码更加安全。看下下面的代码:@interface MyObject : NSObject+ (instancetype)factoryMethodA;+ (id)factoryMethodB;原创 2016-04-10 00:14:26 · 379 阅读 · 0 评论 -
iOS 图片显示原理
iOS中开发中,常常用到UIImageView来显示图片,但是是如何展示出来的?iOS从磁盘加载一张图片,使用UIImageVIew显示在屏幕上,需要经过以下步骤:1 从磁盘拷贝数据到内核缓冲区2 从内核缓冲区复制数据到用户空间3 生成UIImageView,把图像数据赋值给UIImageView4 如果图像数据为未解码的PNG/JPG,转码为位图数据5 CATransac原创 2015-02-10 11:07:46 · 2325 阅读 · 0 评论 -
集合实例化方法+方法或-方法
集合类一般都有两个版本:可变类型和不可变类型。其中不可变类型是完全线程安全的,而可变类型不能保证这一点。所以在API接口中,不应该返回可变类型的集合参数。有时候更有效的做法是:在程序内部保持一个可变类型的集合类对象,而返回一个复制的,不可变类型的集合类对象以供外部访问。 如数组NSArray与NSMutableArray。数组实例化的方法即有-方法,也有+方法。 -方法实原创 2015-02-10 10:37:31 · 1289 阅读 · 0 评论 -
成功开发iPhone软件的10个步骤
成功开发iPhone软件的10个步骤作者:恋恋 | 发布: (编辑)稻草 | 时间:2009-08-05 20:53:39文字大小:-+一年前斯坦福和Apple联手推出了基于iPhone平台的开发课程,这个课程的ppt被放在网上分享,反响非常好。这个学期,斯坦福将课程进行了录像,放在了iTunes university上提供下转载 2014-05-13 22:05:59 · 623 阅读 · 0 评论 -
iOS 5增加了200多个新功能
iOS 5增加了200多个新功能,大家知道是哪200个吗? 全新的锁屏界面第一次使用时的崭新欢迎屏幕免PC激活(这个功能实在是太好了)新的消息推送中心(就是有点像Android的那个)锁屏相机快捷方式股票和天气内置入消息推送中心iPod应用改名为Music并使用了新图标新的视频录像应用iMessage短信发送按钮绿色为普通短信、蓝色为iMessage转载 2014-05-13 21:49:27 · 748 阅读 · 0 评论