编程理论
文章平均质量分 68
火海夕
入行10+年的开发老鸟,专注客户端开发,精通OC、swift,熟悉WEB、JAVA/PHP、iOS联合开发,拥有5年项目管理经验,擅长敏捷项目开发和管理。乐于交流,分享经验技术,也欢迎职业直接推荐!联系方式:wx=j136845,qq=931637933,邮箱=jutiefeng123@163.com
展开
-
堆和栈
管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生memory leak。申请大小:栈:在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在WINDOWS下,栈的大小是2M(也有的说是1M,总之是一个编译时就确定的常数),如果申请的空间超过栈的剩余空间转载 2015-04-29 15:08:36 · 471 阅读 · 0 评论 -
iOS证书详解
目录 引言写在前面一App IDbundle identifier二设备Device三开发证书Certificates证书的概念数字证书的概念iOS开发证书iOS开发证书的根证书申请证书CSRCertificate Signing Request四供应配置文件Provisioning ProfilesProvisioning Profile的概念Provisioni转载 2017-12-11 11:44:45 · 293 阅读 · 0 评论 -
Could not read from remote repository.Please make sure you have the correct access rights.解决方法
我们在使用git clone 或其他命令的时候,有时候会遇到这类问题,如图:fatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.fatal: Could not read from remote reposi...原创 2018-02-25 17:34:24 · 9135 阅读 · 0 评论 -
NSDictionary的实质和实现原理
一、NSDictionary使用原理 1.NSDictionary(字典)是使用 hash表来实现key和value之间的映射和存储的, hash函数设计的好坏影响着数据的查找访问效率。 - (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey; 2.Objective-C中的字典 NSDictionary 底...转载 2018-05-22 16:22:56 · 2059 阅读 · 0 评论 -
面向对象设计的六大设计原则(iOS)
六大设计原则原则一:开闭原则(Open Close Principle)定义 用抽象构建框架,用实现扩展细节。 不以改动原有类的方式来实现新需求,而是应该以实现事先抽象出来的接口(或具体类继承抽象类)的方式来实现。优点 实践开闭原则的优点在于可以在不改动原有代码的前提下给程序扩展功能。增加了程序的可扩展性,同时也降低了程序的维护成本。原则二...原创 2018-09-11 18:12:32 · 1325 阅读 · 0 评论 -
iOS 自动生成文档(Xcode)
AppleDoc可以根据项目中的注释自动生成类似于Apple官方文档的文档文件,大致的效果类似于这样:文档总目录展开样式效果看上去还算不错,但是AppleDoc还是有一些限制的,就是要在代码中加上注释,而且只支持/**/、///、//等格式,不支持#pragma mark - WKNavigationDelegate。支持的注释格式/// 这是...原创 2018-08-28 10:45:58 · 2965 阅读 · 0 评论 -
iOS - 统计代码行数
打开终端,在项目对应文件夹 find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs wc -l- 列出代码行数总和find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "原创 2018-08-27 16:02:35 · 702 阅读 · 0 评论 -
Objective-C之MRC、ARC模式下,属性修饰关键字strong、retain、assign、weak的区别
平时用strong、retain、assign、weak这几个关键字的时候,也没有过多的在意,下边就MRC、ARC模式下,每个关键字做一下总结。为了简明期间,采用表格的形式进行展示。 MRC ARC strong strong是在开始使用ARC内存管理方式的时候引入的,如果硬是要在MRC模式下使用的...原创 2018-04-24 15:03:20 · 1142 阅读 · 0 评论 -
Object c的set和get方法,ARC和MRC 下面的实现
ARC 下面的实现:首先是创建一个person的类,然后声明set方法和get方法有规则是,set方法的名字后面就是变量的,setNameget方法直接就用变量名去掉下划线[csharp] view plain copy// // Person.h // SetAndGetDemo // // Created by 千 on 16/9/11. ...转载 2018-04-24 10:28:38 · 381 阅读 · 0 评论 -
UI控件用weak还是用strong修饰
#import "ViewController.h" @interface ViewController () @property (nonatomic, weak) UIView *weakView; @property (nonatomic, weak) UIView *selfWeakView; @property (nonatomic, strong) UI...转载 2018-04-24 10:23:17 · 466 阅读 · 0 评论 -
终端报错****'UIKit/UIKit.h' file not found**
https://www.jianshu.com/p/43a09727eb2c转载 2018-03-02 10:49:02 · 5179 阅读 · 0 评论 -
Reset your device list before adding any new devices
开发者账号提示Reset your device list before adding any new devices如下图所示: Snip20170606_2.png既然苹果爸爸提示在你添加新设备之前必须重置设备列表,那没什么好犹豫的了,直接Get Started点击之后提示:Snip20170606_1.png现在已已经开始了新的一年,你可以删除你账户下不需要...转载 2018-02-27 18:03:53 · 4216 阅读 · 0 评论 -
iOS 保存相册
方法一使用UIImageWriteToSavedPhotosAlbum函数将图片保存到相册,如:- (void)loadImageFinished:(UIImage *)image{ UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:)...原创 2018-02-27 16:38:30 · 1310 阅读 · 0 评论 -
关联对象 AssociatedObject 完全解析
我们在 iOS 开发中经常需要使用分类(Category),为已经存在的类添加属性的需求,但是使用 @property 并不能在分类中正确创建实例变量和存取方法。不过,通过 Objective-C 运行时中的关联对象,也就是 Associated Object,我们可以实现上述需求。写在前面这篇文章包含了两方面的内容:使用关联对象为已经存在的类中添加属性 关联对象在底层 Obje...转载 2018-02-24 15:39:52 · 727 阅读 · 0 评论 -
Cocos Creator教程 第一弹
本节源码下载:链接: http://pan.baidu.com/s/1jIPYHOM 密码: 5zae触控科技开发的CocosCreator开发工具是的Cocos2d开发和Unity开发更加相似,使用CocosCreator开发2d游戏变得更加便捷快速,之后半年利用做毕业设计的闲暇之余学习使用Cocos Creator开发2d的游戏,主要是看触控科技官方提供的Exampl转载 2017-11-21 12:17:38 · 12786 阅读 · 2 评论 -
静态变量、局部变量、实例变量
静态变量: 也称为类变量!在程序加载时系统就为它在堆中开辟了内存,堆中的内存地址存放于栈以便于高速访问。静态变量的生命周期--一直持续到整个"系统"关闭。 (待考量)实例变量:当你使用关键字alloc的时候,系统在堆中开辟并不一定是连续的空间分配给变量(比如说类实例),然后根据零散的堆内存地址,通过哈希算法换算为一长串数字以表征这个变量在堆中的"物理位置"。 实例变量的生命周期--当实例变原创 2017-11-29 13:14:13 · 471 阅读 · 0 评论 -
iOS 11 SDK新特性
iOS 11 SDK新特性新加入 SDK 的大的框架有两个,分别是负责简化和集成机器学习的 Core ML和用来创建增强现实 (AR) 应用的 ARKit。Core ML自从 AlphaGo 出现以来,深度学习毫无疑问成了行业热点。而 Google也在去年就转变 Mobile-first 到 AI-first的战略。可以说一线的互联网企业几乎都在押宝 AI,目前看来机器学习翻译 2017-10-30 10:03:10 · 273 阅读 · 0 评论 -
Hash 函数
散列表,它时给予快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。散列表(Hash table,也叫哈希表),是根据关键码值儿直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置访问记录,以加快查找的速度。这个影色好函数叫做散列函数,存放纪录的数组叫做散列表。比如我们存储7转载 2015-05-04 14:58:45 · 730 阅读 · 0 评论 -
OOA\OOP\OOD
OOA Object-Oriented Analysis:面向对象分析方法 是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。 OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构原创 2015-11-04 15:29:30 · 702 阅读 · 0 评论 -
IOS 和安卓系统比较
为什么苹果IOS操作系统比安卓系统运行速度快,不少人都反应苹果iPhone要比一般Android手机流畅,这是一个现象要说是大问题谈不上,毕竟两者是完全两个不同的系统所以严格来说放在一起对比是不公平的。不过因为Android以及iOS是当下两大主流操作系统,对比抗衡之类的说法自然难以避免。今天我们就来谈谈为什么iOS产品在使用过程中会让人觉得更加流畅一些,而为何一些Android手机则容易出现卡顿原创 2015-05-15 14:04:22 · 3106 阅读 · 0 评论 -
进制转换(待续)
十进制转二进制:用2辗转相除至结果为1 将余数和最后的1从下向上倒序写 就是结果例如302302/2 = 151 余0 151/2 = 75 余1 75/2 = 37 余1 37/2 = 18 余1 18/2 = 9 余0 9/2 = 4 余1 4/2 = 2 余0 2/2 = 1 余0 故二进制为100101110 二进制转十进制从最后一位开始算,依次列为第0、1、原创 2015-01-13 17:29:20 · 673 阅读 · 0 评论 -
编程-策略模式
我们先设想一个场景:把一堆算法塞到同一段代码里,然后用if-else和switch-case来决定使用哪个算法。比如:表单验证,数据本身可能是NSString, NSInteger,NSFloat...有时候不仅要验证类型还需要验证长度,或者还有其他的验证... 如果用if,有时候真感觉那是一场噩梦。赶紧醒醒吧,加上一个策略模式。wow,世界顿时变得原创 2014-12-10 11:47:37 · 884 阅读 · 0 评论 -
浅谈编程设计模式
设计模式主要分三个类型:创建型、结构型和行为型。 其中创建型有: 一、Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点 二、Abstract Factory,抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。 三、Factory Method,工厂方法:定义一个用于创建对象的接口,让子类决定实例化哪一个类原创 2014-12-10 11:40:52 · 808 阅读 · 0 评论 -
sqlite3 语句总结
一、sqlite3长用于 轻量级的 数据存储,象单片机这一类,但是现在的sqlite3,已经很先进,不能小看二、sqlite3常用命令当前目录下建立或打开test.db数据库文件,并进入sqlite命令终端,以sqlite>前缀标识:#sqlite3 test.db 查看数据库文件信息命令(注意命令前带字符'.'):sqlite>.database查原创 2014-11-27 20:19:16 · 762 阅读 · 0 评论 -
iOS笔记 复习Category和Extension
一、概述类别是一种为现有的类添加新方法的方式。利用Objective-C的动态运行时分配机制,Category提供了一种比继承(inheritance)更为简洁的方法来对class进行扩展,无需创建对象类的子类就能为现有的类添加新方法,可以为任何已经存在的class添加方法,包括那些没有源代码的类(如某些框架类)。 二、示例1、声明类别@interf转载 2016-02-01 11:11:32 · 545 阅读 · 0 评论 -
IMP指针和ObjcSendMsg
下边是我整理的一些文档编辑的,那么第一次看可能很生涩难懂,看的时候不要着急,先理解IMP的含义,然后就是C的一些基础一定要知道,这样后面的更容易理解,好了闲话少说1.那么什么是IMP呢?其实,还有一种更加简单的方法可以让我们办到相同的目的,运用IMP指针,IMP就是Implementation的缩写,顾名思义,它是指向一个方法实现的指针,每一个方法都有一个对应的IMP,所以,我们可以直接调原创 2016-03-30 16:06:28 · 1689 阅读 · 0 评论 -
__block __weak
Blocks理解:Blocks可以访问局部变量,但是不能修改如果修改局部变量,需要加__block __block int multiplier = 7; int (^myBlock)(int) = ^(int num) { multiplier ++;//这样就可以了 return num * multiplier; };转载 2016-05-20 14:38:07 · 356 阅读 · 0 评论 -
MRC下block循环嵌套暴露的内存问题
iOS4以后引入的block,一个比较方便且实用的功能。但是自己在开发的时候遇到了不少的坑,很多都是和内存管理相关的,后来iOS5.0以后有了ARC,有了__weak关键字,所以block使用也就更安全了。 但是,吐槽下我们公司。对于像我们公司这种,还在支持iOS4.3,还在用MRC的来说,很多后来方便的框架和工具都不能用了。而那个坑还是那个坑。 最近在看C++的东西,无意中又原创 2016-05-23 12:10:48 · 1759 阅读 · 0 评论 -
iOS 中KVC、KVO、NSNotification、delegate 总结及区别
1、KVC,即是指 NSKeyValueCoding,一个非正式的Protocol,提供一种机制来间接访问对象的属性。而不是通过调用Setter、Getter方法访问。KVO 就是基于 KVC 实现的关键技术之一。Demo:@interface myPerson : NSObject { NSString*_name;原创 2016-08-11 11:11:24 · 286 阅读 · 0 评论 -
Linux常用命令整理
常用指令ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all)mkdir 创建目录 -p 创建目录,若无父目录,则创建p(parent)cd 切原创 2017-01-19 17:23:26 · 240 阅读 · 0 评论 -
图像识别初识
1官方表达:图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对像的技术。2图像识别大致分为三个步骤:1)提取特征2)建索引build3)查询。3什么是模版?模板匹配模型。这种模型认为,识别某个图像,必须在过去的经验中有这个图像的记忆模式,又叫模板4那么模版是怎么使用的呢?这种模型认为,在长时记忆中存储的并不是所要识别的无数个模板原创 2017-08-11 23:22:42 · 4007 阅读 · 1 评论 -
转载
MRC中使用 assgin 修饰代理,ARC中推荐使用weak 修饰代理assign是指针赋值,不对引用计数进行操作,如果使用完毕以后,不把其置为nil,就有可能产生野指针,这时候如果操作就会crash(很容易产生野指针错误: EXC_BAD_ACCESS);而weak修饰的对象销毁了就会将指针置为nil,所以ARC中代理对象使用weak修饰更安全。如果ARC中使用了assign修饰了代理对...转载 2019-03-01 17:17:01 · 128 阅读 · 0 评论