
iOS 知识点
@福者
曾研究银行技术部,奇虎360,字节跳动......等工作。研究技术已经是生活中不可缺少快乐,
展开
-
iOS 运行循环-RunLoop 和 自动释放池-autoreleasepoo 笔记
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄一、"运行循环-RunLoop"的作用 最主要的作用:保证程序不退出->主线程始终存在! 除此之外运行循环还负责监听所有的事件,包括:手势触摸,时钟触发,网络加载数据完成 特性:没有事件的时候,会休眠(省电),一旦监听到事件,会立即响应原创 2017-06-28 23:16:35 · 1751 阅读 · 0 评论 -
iOS 类的抽象和继承:类族与工厂模式~详解
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄一、Objective-C类族和工厂模式/**注意:更多了解iOS 开发常用的23种设计模式简介: 链接http://blog.youkuaiyun.com/shihuboke/article/details/72817169*/在iOS的系统类库中也有原创 2017-06-29 15:30:32 · 1081 阅读 · 0 评论 -
iOS 简单工厂模式、抽象工厂模式~详解
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄/** 注意:简单工厂模式示例代码下载地址,*/一、简单工厂模式1、简述首先需要说明一下,简单工厂模式不属于23种GOF设计模式之一。它也称作静态工作方法模式,是工厂方法模式的特殊实现(也就是说工厂模式包含简单工厂模式)。这里对简单工厂模式进行介绍,是为后面的工厂方法和抽象工原创 2017-06-29 17:59:33 · 3765 阅读 · 0 评论 -
iOS APP启动原理及视图~详解
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄一 、IOS开发APP启动原理main()函数是整个程序的入口,在程序启动之前,系统会调用exec()函数。在Unix中exec和system的不同在于,system是用shell来调用程序,相当于fork+exec+waitpid,fork函数创建子进程后通常都会调用 exec函原创 2017-06-30 00:31:56 · 827 阅读 · 0 评论 -
iOS APP启动函数调用顺序~详解
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄一、OC调用C++会为静态创建的对象生成初始化器,与静态语言不同,OC基于Runtime机制可以用类的名字来实例化一个类的对象。Runtime维护了一张映射类名与类的全局表,当加载一个 dylib时,其定义的所有的类都需要被注册到这个全局表中。ObjC在加载时可以通过 fix-up原创 2017-06-30 00:43:54 · 5653 阅读 · 0 评论 -
iOS Class结构体分析~详解
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄objc_class结构体一、类在OC中是objc_class的结构体指针 typedef struct objc_class *Class;在objc/runtime.h中objc_class结构体的定义如下:struct objc_class {原创 2017-06-30 08:39:36 · 4904 阅读 · 1 评论 -
iOS self 和 super区别以及为什么要self = [super init];
联系人:石虎 QQ:1224614774昵称:嗡嘛呢叭咪哄 QQ群:807236138群称:iOS 技术交流学习群一、self和super区别区别:- self调用自己方法,super调用父类方法- self是类,super是预编译指令- self class】和【super class】输出是...原创 2017-06-30 09:38:17 · 3046 阅读 · 1 评论 -
iOS Objective-C 数组遍历的性能及原理
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄原文链接:http://www.jianshu.com/p/66f8410c6bbc数组的遍历,这个话题貌似没什么好探究的,该怎么遍历就怎么遍历呗!但是如果要回答这些问题: OC 数组有哪几种遍历方式? 哪种方式效率最高? 为什么? 各种遍历方式的内部实现是怎么样的? NS(Mutable)Array 的内部转载 2017-06-30 23:02:25 · 3402 阅读 · 1 评论 -
iOS APP启动(执行)顺序~详解
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄SH为我的前缀名 1.先执行main函数,main内部会调用UIApplicationMain函数 2.UIApplicationMain函数里面做了什么事情: 1> 创建UIApplication对象 2> 创建UIApplication的delegate对象—–SHAppDel原创 2017-06-30 23:11:54 · 838 阅读 · 0 评论 -
iOS 正则表达式~详解 02 (方法名总结)
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄1.在做app注册页面的时候,需要判断手机号是否格式正确,是否够11位。2.在做意见反馈的时候,需要判断邮箱格式是否正确。下面就让我们开始了解一下正则表达式与谓词:一、基本概念 1.什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。 正则表达式可以检测 给定的字符串是否符原创 2017-07-11 22:39:38 · 486 阅读 · 0 评论 -
iOS 正则表达式~详解 01 (简介)
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄一、正则表达式基本概念 1.什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。 正则表达式可以检测 给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分。它可以 迅速地用极简单的方式达到字符串的复杂控制。 2.什么是谓词 Co原创 2017-07-11 22:26:32 · 599 阅读 · 0 评论 -
iOS 正则表达式~详解 03 (实现代码)
一、iOS中有三种方式来实现正则表达式的匹配。现在将他们都记录在这里:1.利用NSPredicate(谓词)匹配 例如匹配有效邮箱:?1234NSString *email = @“nijino_saki@163.com”; NSString *regex = @"[A-Z0-9a-原创 2017-07-11 22:54:43 · 409 阅读 · 0 评论 -
iOS 正则表达式~常用符号
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄正则表达式在编写处理字符串的程序时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码正则表达式是对字符串操作的一种逻辑公式,用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个原创 2017-07-12 07:02:17 · 885 阅读 · 0 评论 -
iOS 内购支付两种模式
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄·内置模式·服务器模式内置模式的流程:app从app store 获取产品信息用户选择需要购买的产品app发送支付请求到AppStoreAppStore处理支付请求,返回transaction信息app将购买的内容展示给用户服务器模式的流程:app从服务器获取产品标识列表app从app sto原创 2017-07-03 14:58:05 · 2282 阅读 · 0 评论 -
iOS App store 应用审核由于 IPv6 网络问题被拒的一点分析
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄六月以后陆续有一些软件提交市场的时候被拒了,症状基本就是无法登陆啥的。我们公司的应用也未能幸免。很多同学也想了不少办法,申诉、拍视频啥的都有,有人成功有人失败。但是如果苹果不能再自己的测试环境下测试成功,基本就还是要被拒的。先分析一下情况,很多开发者抱怨自己按照苹果给出的方法,在自己电脑上搭了 I原创 2017-07-03 21:36:46 · 1058 阅读 · 0 评论 -
iOS OC 的命名规范
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄There are only two hard things in Computer Science: cache invalidation and naming things.在计算机科学中只有两件难事:缓存失效和命名。— Phil Karlton计算机语言是人和计算机之间通讯的媒介。好的代转载 2017-06-24 06:12:01 · 631 阅读 · 0 评论 -
iOS 缓存机制浅析
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄1. 基本概念 缓存: 缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。2. 手机缓存的分类转载 2017-06-24 06:19:55 · 575 阅读 · 0 评论 -
iOS mac终端下的SQL语句
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄我们都知道数据库的创建可以借助图形化的数据库工具软件,但也可以在Mac终端下来直接使用代码创建。下面介绍怎样建立数据库、建立资料表、建立索引、数据的增、删、改、查以及sqlite3命令列选项等。建立数据库档案打开终端,在终端用sqlite3建立数据库,在shell下键入(以转载 2017-06-24 06:25:45 · 470 阅读 · 0 评论 -
iOS 打电话、发短信、发邮箱 、跳转网站 功能(系统方法)
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄/**注意:打电话、发短信、发邮箱 、跳转网站 功能(系统方法)---->要真机才有效果*/1.简单实现效果图:2.实现代码:@implementation ViewController//打电话- (IBAction)makePhone:(id)sender原创 2017-06-25 07:14:14 · 3695 阅读 · 1 评论 -
iOS 调试解决iOS内存泄漏
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露还是可能存在。所以了解原理很重要。这里讲述在没有ARC的情况下,如何使用Instruments来查找程序中的内存泄露,以及NSZombieEnabled设置的使用。本文假设你已经比较熟悉Obj-C的内存管理机制。实原创 2017-07-04 14:05:48 · 676 阅读 · 0 评论 -
iOS 模拟器设置输入中文
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄在IOS 模拟器中 输入中文模拟器默认的配置种没有“小地球”,只能输入英文。加入中文方法如下:找到模拟器的Settings--->General-->Keyboard-->International KeyBoards-->Add New Keyboard-->Chines原创 2017-06-27 10:17:00 · 1213 阅读 · 1 评论 -
iOS 地址编码解析
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄- (void)viewDidLoad{ [super viewDidLoad]; // 创建地址解析器 self.geocoder = [[CLGeocoder alloc] init]; }//编码- (IBActio原创 2017-07-15 20:31:05 · 896 阅读 · 0 评论 -
iOS 解决iOS 地图获取位置提示框不弹出
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄1、需要手动调用CLLocationManager对象的requestAlwaysAuthorization方法。2、调用该方法需要在Info.plist中设置NSLocationAlwaysUsageDescription的字符串,这个值 (NSString *)会显示在系统提示框中 ;不要自己加值就是(Boo原创 2017-07-06 21:03:03 · 6745 阅读 · 0 评论 -
iOS 系统提示框是否同意获取当前位置提示框自动消失
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄在做一个系统定位功能时,需要先请求用户的GPS授权,代码如下[objc] view plain copy// 创建CLLocationManager对象并设置代理 CLLocationManager *locationM = [[CL原创 2017-07-06 21:07:26 · 910 阅读 · 0 评论 -
iOS 二维码简介
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄注意:在编写中.......谅解图:谢谢!!!原创 2017-07-15 21:37:15 · 323 阅读 · 0 评论 -
iOS NSMutableData和NSData常用操作
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄NSData 是不可变二进制数据NSMutableData 是可变的二进制数据NSData创建后不可以再修改,NSMutableData可以再次修改。NSData和NSMutableData存储的是二进制数据,在文件操作,网络,以及核心图形图像中使用原创 2017-07-20 14:13:38 · 4194 阅读 · 0 评论 -
iOS 国际化语言
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄一、获取系统所支持的国际化信息//iPhone中使用NSLocalizedString实现国际化[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode];//在国际化之前,你可以在iphone中的”设置->通原创 2017-07-29 21:31:57 · 2541 阅读 · 0 评论 -
iOS 地图 自定义以及添加锚点
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄//自定义添加锚点- (void)clickLongPress:(UILongPressGestureRecognizer *)longPress { CGPoint point = [longPress locationInView:mapView];原创 2017-07-08 11:58:49 · 1372 阅读 · 0 评论 -
iOS 打包ipa如何瘦身
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄一、概念项目里有一个h5页面需要原生化,这个页面有大量的本地图片,而这些图又用了2x、3x两套图,其中有些图片大到一张能达到好几M,最终的结果是ipa的包体积巨大无比。于是试了好些方法,终于把ipa的体积减小了很多。二、减小ipa包大小解决方法1、 从图片资源进行瘦身。(1) 对图片本身进行压缩。设计师在设计大的图片时对图片进行压缩...原创 2017-07-30 08:26:21 · 2185 阅读 · 0 评论 -
iOS Pokemon Go试玩,未越狱的iPhone伪造GPS定位信息
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄最近Pokemon Go 火的不行,结果人家服务器扛不住了,只接受GPS定位信息在澳洲的客户端的登陆请求。今天自己搞了个小Demo,在未越狱的iPhone上把系统的GPS定位信息给改了。步骤:在Xcode8-beta上新建一个空白工程 -> Edit scheme -> Default L转载 2017-07-08 22:09:41 · 2291 阅读 · 0 评论 -
iOS NSDictionary(字典)或者NSArray(数组)和JSON串的转换
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄在和服务器交互过程中,会iOS 字典或者数组和JSON串的转换,具体互换如下:// 将字典或者数组转化为JSON串+ (NSData *)toJSONData:(id)theData{ NSError *error = nil; NSData *jsonData = [NSJSONSe原创 2017-07-21 16:05:33 · 1744 阅读 · 0 评论 -
iOS NSDictionary,JSON和XML互相转换
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ [self test]; // Override point for转载 2017-07-21 16:11:34 · 1418 阅读 · 0 评论 -
iOS Xcode下的绝对路径和相对路径
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄一般我们在xcode中添加头文件,或者添加pch文件时候,这时候就需要用到相对路径和绝对路径这两个概念了。首先我们需要简单了解一下什么是绝对路径和相对路径。相对路径实际就是调用当前目录下面的文件,绝对路径跟相对路径一样调用文件,但绝对路径是一个固定地址。简单举个例子介绍一下,例如我在桌面建一个aa的文件夹,里面一原创 2017-07-21 16:23:10 · 3303 阅读 · 0 评论 -
iOS #pragma mark - 标志
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄/**注意点: 1. #pragma mark – 的“-”后面不能有空格。 2.如果你的标志没有出现在弹出菜单中,比如没有分隔线出现,请在Xcode菜单 “Preferences..”中的 “Code Sense”选项取消选中”Sort list alphabetical原创 2017-07-22 08:45:04 · 1485 阅读 · 0 评论 -
iOS 横竖屏旋转处理
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄一、监听屏幕旋转方向在处理iOS横竖屏时,经常会和UIDeviceOrientation、UIInterfaceOrientation和UIInterfaceOrientationMask这三个枚举类型打交道,它们从不同角度描述了屏幕旋转方向。1、UIDeviceOrienta转载 2017-07-22 16:56:14 · 1271 阅读 · 0 评论 -
iOS 如何优化项目
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄前言在项目业务趋于稳定的时候,开发完迭代需求后,我们可能会无所适从,进入一段空白期,但是对于攻城狮来说闲暇不是件好事,所以我们可能总想学点什么,却又没有头绪。这个时候我们就可以考虑完善和优化我们的项目了。从中可以运用到一些底层RunLoop或者Runtime的知识,熟能生巧总是没错的。转载 2017-07-22 17:08:58 · 559 阅读 · 0 评论 -
iOS UITextField系统警告问题~已解决
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄在iOS 8 以后,我们在使用弹窗时会遇到一个未知的打印,如下图所示:未知的打印// 相关的使用代码如下[alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {转载 2017-07-22 17:01:30 · 808 阅读 · 0 评论 -
iOS NSDictionary及NSArray初始化后nil指针的影响
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄一、reason(原因)总结reason *** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'reason *** -[__NSPlaceholderDictionary ini原创 2017-07-25 09:57:51 · 3345 阅读 · 0 评论 -
iOS -[__NSArrayI addObject:]: unrecognized selector sent to instance~解决方法
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄报错: 一'*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds[0 .. 0]'报错: 二*** Terminating app due to uncaught exception 'NSI原创 2017-08-10 07:17:16 · 11880 阅读 · 0 评论 -
iOS Mac版 Firefox 浏览器拦截广告~解决方法
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄/**注意点: 1.看 GIF 效果图. 2.看连线视图的效果图. 3.看实现代码(直接复制实现效果).*/一、看效果图:图1:图2:图3:图4:原创 2017-08-11 14:51:56 · 2083 阅读 · 0 评论