- 博客(28)
- 收藏
- 关注
原创 iOS开发面试题
Edit1. KVO的实现原理KVO的底层实现是使用runtime实现的,在程序运行过程中,创建一个继承于对象观察者的类 (例如观察者对象的类为Person,动态创建NSKVONofitying_Person类,并且继承于Person)使用断点查看发现age属性虽然属于Person类,但是内部的isa指针指向的是NSKVONofitying_Person对应的.m文件,
2017-12-26 11:08:19
698
原创 iOS 开发密码学
哈希(散列函数)算法 对称加密算法 非对称加密算法 哈希(散列函数)算法算法公开 对不同数据加密结果是定长的32位字符(所能表示的个数是有限的) 信息摘要(加密之后的数据是不可逆的) 哈希的破解: 散列碰撞(就是找出两个不同的数据, 加密之后得到相同的结果) 比方说: 用户隐私数据!! 绝对不允许明文传递(需要加密——哈希算法) 服务器是不知道用户的真实密码!!!—找回密码
2017-12-26 11:01:13
417
转载 iOS开发之Masonry框架源码深度解析
Masonry是iOS在控件布局中经常使用的一个轻量级框架,Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。本篇博客的主题不是教你如何去使用Masonry框架的,而是对Masonry框架的源码进行解析,让你明白Masonry是如何对NSLayoutConstrain
2016-09-07 10:00:30
558
转载 iOS及Mac开源项目和学习资料
iOS UI下拉刷新EGOTableViewPullRefresh – 最早的下拉刷新控件。SVPullToRefresh – 下拉刷新控件。MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写)XHRefr
2016-03-08 17:02:58
1405
原创 iOS开发之简单多语言开发
开发多语言,一般有两种情况1、App还没有开始写;2、App已经迭代过几个版本;项目刚开始启动1、新建一个项目(我就不多说了)2、command + N 添加多语言文件,如下图3、添加多语言,如图选择English 点击Localize到这里已经算是添加好了多语言文件,接下来就是添加多语言现在需要进入项目的
2016-01-25 11:54:13
369
原创 iOS开发利用Javascript去操作UIWebView的内容
Web背景知识web 时代三剑客 html + css + javascripthtml : 就像是我们创建一个UIView,只是规定我们创建的是一个长方形的框架,还有我们创建一个UIImageView只是去创建一个可以放图片的控件,html只是规定了一些控件的类别,其中web 1.0时代以table控件为主要控件,web 2.0 时代,主要就是div控件了.这个div控件其实我们
2016-01-09 10:23:37
560
原创 iOS开发-制作Framework(最新)
前言之前有很多的大神们已经写过framework的制作,但最近由于Xcode7的出现,很多之前的教程内容已经不符,对于初学者来说,找到一篇能够直接明了,简单易学的制作framework的文章比较困难。本文将基于Xcode7创建一个简单的工程,通过两种方法来教大家如何制作一个自己的framework。简介Mac OS X扩展了framework的功能,让我们能够利用它来共享代码和资源
2015-12-31 11:11:23
490
原创 CoreData的简单使用
iOS开发-CoreData的简单使用什么是CoreData?CoreData是iOS5之后才出现的一个框架, 它提供了对象-关系映射(ORM)的功能, 即能够将OC对象转换成数据, 保存在SQLite数据库文件中, 也能够将保存在数据库中的数据还原成OC对象.这个过程中, 我们不需要编写任何的sql语句, 这个有点类似于著名的Hibernate持久框架, 不过功能肯定没有Hibe
2015-12-28 18:44:11
372
原创 NSURLSession下载与缓存
NSURLSession下载与缓存iOS9要求网络请求需要使用NSURLSession,那么本篇文章就使用NSURLsession来实现视频的下载,图片的下载、取消下载、恢复下载和缓存功能,期望与大家一起学习。NSURLSessionConfiguration(参数配置类)NSURLSession状态同时对应着多个连接,不像之前使用共享的一个全局状态。会话是通过工厂方法(类
2015-12-22 11:46:05
500
原创 cocoaPods的安装
CocoaPods是什么? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,例如 高德地图和百度地图的SDK, 就会使用到很多静态库, 手动导入会很麻烦,CocoaPods应该是iOS最常用最有名的类库管理工具了,通过cocoaPods
2015-12-12 17:12:56
328
原创 iOS开发中类方法与self方法的区别
Objective-C里面既有实例方法也类方法。类方法(Class Method) 有时被称为工厂方法(Factory Method)或者方便方法(Convenience method)。工厂方法的称谓明显和一般意义上的工厂方法不同,从本质上来说,类方法可以独立于对象而执行,所以在其他的语言里面类方法有的时候被称为静态方法。注意点一:类方法1,类方法可以调用类方法。2,类方法不可以调用
2015-11-02 10:37:04
599
1
原创 关于Xcode7以后ARC和MRC的一些问题的解决办法
Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3505.16/UIApplication.m:32941.自己的旧项
2015-10-29 20:25:50
390
转载 iOS开发程序中各种变量的存储位置和程序返回变量的问题
c++内存到底分几个区?一: 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由os回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块
2015-10-27 09:02:34
3631
转载 iOS开发关系结构体分配空间
结构体内存分配问题(转)1)sizeof也可以对一个函数调用求值,其结果是函数返回类型的大小,函数并不会被调用。(2)终于搞懂struct结构体内存分配问题了,结构体中各个成员字节对齐遵循以下几个原则:1.结构体每个成员相对于结构体首地址的偏移量(offset)都是(这个)成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(internal adding); 例如有以下一个
2015-10-24 11:24:21
1653
原创 iOS开发中iOS小结
一.内存管理情况1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象。当用户的代码运行告一段 落,开始等待用户的操作,自动释放池就会被释放掉(调用dealloc),池中的对象都会收到一个release,有可能会因此被销毁。2-成员属性:readonly:不指定readonly,默认合成getter和setter方法
2015-10-23 17:11:27
724
转载 iOS开发C语言字符串
C语言字符串一、字符串基础注意:字符串一定以\0结尾。Printf(“yang\n”);其中yang为字符串常量,“yang”=‘y’+‘a’+‘n’+‘g’+‘\0’。字符串由很多的字符组成,通常使用字符数组来存储字符串,如char name[10]=“yang”;也可以以printf(name);的形式输出,即通过数组来访问字符串,但会有警告。因为默认情况下,printf函数只
2015-10-22 17:27:39
383
原创 iOS开发中关于iOS9 HTTP的解决办法
在Info.plist中添加NSAppTransportSecurity类型Dictionary。在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES
2015-10-19 09:34:30
351
原创 iOS开发中coredata的使用和数据持有化
一、概念1.Core Data 是数据持久化存储的最佳方式2.数据最终的存储类型可以是:SQLite数据库,XML,二进制,内存里,或自定义数据类型在Mac OS X 10.5Leopard及以后的版本中,开发者也可以通过继承NSPersistentStore类以创建自定义的存储格式3.好处:能够合理管理内存,避免使用sql的麻烦,高效4.构成:(1)NSManagedOb
2015-10-09 09:13:27
393
原创 iOS开发中解决iOS8无法定位的问题
升级iOS 8后,将无法定位,特给出解决方案。1.在Plist中追加下字段NSLocationWhenInUseUsageDescription或NSLocationAlwaysUsageDescription(这两个字段必须有其中一个,内容是系统alert的文言,文言可为空) ,如下图所示:WhenInUse是应用在前台的时候可以搜到更新的位置信息,Always是除了应用在前台,应用在后
2015-10-07 19:33:30
441
原创 iOS开发使用WebViewJavascriptBridge实现OC与JS交互
[iOS] 使用WebViewJavascriptBridge实现OC与JS交互前言当下,很多APP里面都会有HTML5网页,我们除了简单的用WebView加载显示外,很多情况下,我们还需要和WebView进行交互,比如点击WebView上面的按钮调用OC端的函数实现具体操作。因此今天为大家介绍一个优秀的开源小项目,就是我们今天的主角--WebViewJavascriptBridg
2015-10-07 14:34:09
607
原创 iOS开发地图的代码和方法
类方法说明+ (BOOL)locationServicesEnabled;是否启用定位服务,通常如果用户没有启用定位服务可以提示用户打开定位服务+ (CLAuthorizationStatus)authorizationStatus;定位服务授权状态,返回枚举类型:kCLAuthorizationStatusNotDetermined: 用户尚未做出决定是否
2015-10-06 10:01:21
879
原创 iOS开发CGD买票
@interface ViewController () { int _totalCount; // 火车票总票数 int _surplusCoynt; // 剩余票数 NSLock *_lock; // 互斥锁 } @end [objc] view plaincopy// 设置剩余票数 _surplusCoynt
2015-09-22 17:31:52
421
原创 iOS开发CGD
[objc] view plaincopy// 串行队列 分两种 // 1.主队列 // 创建一个主队列 dispatch_queue_t mainQueue = dispatch_get_main_queue(); // 像主队列中添加任务 // 参数1 要添加的队列 // 参数2 要添加的任务 dispatch_async(mainQueue, ^{
2015-09-22 15:16:23
399
转载 iOS开发中通过点击按钮异步加载图片
AsyncImageView.h: #import @interface AsyncImageView : UIView { NSURLConnection* connection; NSMutableData* data; } - (void)loadImageFromURL:(NSURL*)url; @end AsyncImageView
2015-09-17 19:49:58
388
翻译 iOS开发中SQlite常用语句
SQlite常用语句注:SQlite语句 不区分大小写1.创建表语句create table Student (Student 是表名)IF NOT EXISTS 表不存在 才创建gender text 表示其类型 字符串存储类型:NULL 值是空值INTEGER 值是整型REAL 值是浮点数TEXT 值是文本字符串BLOB 值是一个二进制类
2015-09-17 13:01:25
506
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人