iOS开发
文章平均质量分 68
这里有很多有含量的iOS技术文章,分享给大家。一起学习,一起进步!
願不負歲月
开源共享
展开
-
HTTPS原理剖析
HTTPS 超文本传输安全协议: Hypertext Transfer Protocol Secure, 是一种网络安全传输协议。在计算机网络上, HTTPS经由超文本传输协议(HTTP)进行通信, 但是利用SSL/TLS来加密数据包。本质就是在TCP运输层和HTTP应用层之间加了一层安全机制。目的是提供对网络服务器的身份认证, 保护交换数据的隐私和完整性。为何需要HTTPS? 不使用SS原创 2017-03-16 18:51:50 · 641 阅读 · 0 评论 -
iOS_Runtime修改变量值,交换方法实现,动态添加类,成员变量和方法
Runtime修改变量值,交换方法实现,动态添加类,成员变量和方法原创 2016-07-27 11:36:38 · 8270 阅读 · 0 评论 -
iOS_Runtime
Runtime,获取成员变量,属性,方法,协议。原创 2016-07-22 16:04:43 · 1163 阅读 · 0 评论 -
NSString使用大全
字符串截取,比较,去除空格, 遍历,拼接,类型转换原创 2016-07-18 16:08:21 · 1125 阅读 · 2 评论 -
iOS 设备信息
在iOS开发中,有时候我们需要使用跟设备相关的一些信息,下面就详细介绍一下设备相关信息:1.获取当前设备所有者名称:2.获取设备的类别,是iPhone,iPod,还是iPad这里要获取iPhone的具体类型,要有如下代码:- (NSString *)deviceString { // 需要#import "sys/utsname.h" st原创 2016-07-07 10:45:56 · 1234 阅读 · 0 评论 -
iOS PureLayout的基本使用(二)
上篇博客讲解了PureLayout的基本使用,主要是控制一个子类在父类中的位置,然后通过查看源码发现其实就是控制两个View之间的位置关系,同时也讲了一些注意点。今天继续讲解如何使用PureLayout设置不同View之间的约束。比如看如下代码:很明显设置了view1距离父View顶部和左部分别是20,然后设置了view1的宽和高。效果如下:再加入如下代码:原创 2016-07-06 21:07:49 · 2138 阅读 · 1 评论 -
iOS PureLayout的基本使用(一)
AutoLayout是从iOS6开始苹果引入来取代autoresizing的新的布局技术,现在用的比较多的可能是Masonry和PureLayout。今天主要讲讲如何使用PureLayout,它比Masonry更加轻量级,只是以category的形式辅助苹果已有的NSLayoutContraint,使用起来也非常方便。1.首先了解一下如下几个枚举:1)ALEdge: 分别是左,右,原创 2016-07-01 09:51:06 · 3004 阅读 · 0 评论 -
iOS中通知的使用NSNotificationCenter
在实际的开发中,通知这一手段还是比较常用的。那今天就详细讲讲通知。1.通知中心(NSNotificationCenter)实际是在程序内部提供了一种广播机制。把接收到的消息,根据内部的消息转发表,将消息转发给需要的对象。这句话其实已经很明显的告诉我们要如何使用通知了。第一步:在需要的地方注册要观察的通知,第二步:在某地方发送通知。(这里注意:发送的通知可能是我们自定义的,也可能是系统的)。原创 2016-06-04 13:47:26 · 26152 阅读 · 1 评论 -
Mac终端(Terminal)自定义颜色,字体,背景
使用Mac作为开发机的时候,苹果终端自带的颜色黑白,字体又小,看起来确实不是很舒服。那推荐大家使用Solarized配色方案。Solarized 是目前最完整的 Terminal/Editor/IDE 配色项目,几乎覆盖所有主流操作系统(Mac OS X, Linux, Windows)、编辑器和 IDE(Vim, Emacs, Xcode, TextMate, NetBeans, Visua原创 2016-05-27 19:28:00 · 54290 阅读 · 5 评论 -
UIWebView的基本介绍(一)
现在App开发混合式开发还是比较常见的,即传统模式与PC网页端相结合。那iOS中就必须得提一下UIWebView这个控件了。在一些媒体资讯类的新闻详情页中尤为常见。既能够提高开发效率,又有非常良好的用户体验。那下面就详细介绍一下UIWebview这个控件。1. 首先还是有必要了解以下几个事情的: (1)//自动对页面进行缩放以适应屏幕 @property(non原创 2016-05-05 21:29:26 · 604 阅读 · 0 评论 -
UITableView基本使用(二)
上篇博客讲解了UITableView的最基本的使用,这篇博客做一些补充。有时候我们需要实现这样的功能:1.比如改变系统自带的选中cell的颜色: 可以在cellForRowAtIndexPath代理方法中创建cell时,自定义一个UIView,frame等于cell.frame,然后设置这个自定义View的背景色。代码如下://cell选中时任意颜色 cell.原创 2016-05-02 15:06:12 · 4377 阅读 · 1 评论 -
UITableView基本介绍(一)
上篇博客大致讲解了UIScrollView的使用,相信大家对于UIScrolView已经有一定了解了。那其实在实际的开发中,我们使用更多的可能还是UITableView。学会使用UITableView还是非常重要的,今天就仔细讲解一下UITableview的实际使用。1.先从最基本的使用开始。首先要知道几个事情:(1)UITableView有两种样式:(普通样式)UITableViewSt原创 2016-05-02 10:58:27 · 3644 阅读 · 0 评论 -
UICollectionView的基本使用(一)
做iOS的对于UITableView一定都挺了解的。比如实现代理啊,cell重用啊,自定义cell啊等等。其实还有一个非常好用的控件UICollectionView,实现起来意思与UITableView类似。那下面就讲一下如何使用UICollectionView来实现项目中的一些需求。这篇文章只讲解基本使用。1.首先创建一个JYCollectionViewCell类,继承自UICollec原创 2016-04-27 19:34:42 · 678 阅读 · 0 评论 -
iOS,UITableView详细介绍之基本使用(一)
iOS中,UITableVIew的使用是非常常见的,下面就来详细介绍一下1.UITableView必须实现两个代理:UITableVIewDataSource,UITableViewDelegate2.UITableView的三个关键代理方法是: (1)-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView原创 2015-12-23 16:56:52 · 828 阅读 · 0 评论 -
iOS,UITableView详细介绍之自定义Cell(二)
在iOS开发中,对于UITableViewCell自带的属性可能满足不了实际需求,所以需要自定义Cell。1.2.ViewController.m#import "ViewController.h"#import "JYTableViewCell.h"#import "JYModel.h"@interface ViewController ()//显示的数据源(实际项原创 2015-12-24 22:58:18 · 765 阅读 · 0 评论 -
UIScrollView基本使用(一)
今天这种日子还在写代码的,一定是真爱。好吧我承认闲的无聊。下面讲一讲UIScrollView的基本使用。使用场景:一般当手机屏幕不能完全显示需要展示的内容的时候,就会考虑使用UIScrollView了。 可以通过拖拽将屏幕外的内容显示出来。1.使用前要知道几个属性的含义:(1)CGSize contentSize:这个属性代表可以滚动的区原创 2016-05-01 11:45:50 · 1387 阅读 · 2 评论 -
iOS手动内存管理之对象持有对象可能存在的内存泄露问题
在手动内存管理中,很容易引发内存泄露。如下代码解决了上一篇文章中可能存在的问题。详情请仔细阅读main.m文件1.FKItem的代码如上一篇不变2.FKUser.m文件中setItem:方法作如下修改-(void)setItem:(FKItem *)item{ if(_item1!=item) {// //让item的引用计数+1//原创 2016-03-01 09:16:28 · 819 阅读 · 0 评论 -
iOS_Block详解2(解决循环引用)
请仔细看代码:/* 1.Block对象通常会使用外部创建的其它变量(基本类型的变量,或者指向其他对象的指针)---》外部变量。 2.当执行block对象时,为了确保其下的外部变量能够始终存在,相应的block对象会捕获这些变量。 1)对基本类型的变量,捕获意味着程序会拷贝变量的值,并用Block对象内的局部变量保存。 2)对指针类型的变量,block对象会使用强引用。意味着原创 2016-03-11 20:47:55 · 562 阅读 · 0 评论 -
iOS数据持久化之偏好设置
iOS中的数据持久化方式:1.plist 文件 2.偏好设置 3.NSKedArchiver(归档)4.SQLite5.CoreData下面详细讲一下偏好设置:/* 1.偏好设置会将所有数据保存到同一个文件中。即preference目录下的一个以此应用包名来命名的plist文件。 2.偏好设置是专门用来保存应用程序的配置信息的,一般不要在偏好设置中保存其他数据。 3.使用偏好设置对数原创 2016-03-19 09:31:03 · 677 阅读 · 0 评论 -
iOS之键盘弹出视图上移
有时候搞开发会碰到一个问题,就是当点击一个UITextField时,弹出虚拟键盘会将这个文本控件遮住。这无论从开发角度还是用户体验来说,都是不行的。其实要解决这个问题也是很简单的,只要获取键盘没弹出前键盘的Rect,键盘弹出后键盘的Rect,其实最主要的变化还是在于Y值嘛,所以只要两者相减就能得到需要移动的距离,然后做个动画就OK了。那具体代码如下:#import "Vie原创 2016-04-01 12:40:50 · 19766 阅读 · 0 评论 -
Category(类别)和扩展(Extension)的区别
类别:1.类别不能为已存在的类添加实例变量。2.类别中添加的方法优先级高,会覆盖原类中的方法3.原类中的私有方法,可以在类别中定义一下,这样就可以使用了。4.在categroy中定义的方法可以被子类继承。扩展:1.扩展中可以定义属性,变量,和方法2.扩展中定义的属性和方法不能被子类继承3.扩展中只能对自定义的类添加方法,不能对系统类添加方法。原创 2016-03-20 12:01:50 · 1028 阅读 · 0 评论 -
UIGestureRecognizer,手势处理,点击,长按,拖动,左右划动
对于移动端,由于用户都是通过手指触摸来操作的,所以对于手势的处理是必不可少的。下面详细谈谈有哪几种手势操作。1.点击,长按,拖动,左划,右划(上划下划)。2.闲话不多说,直接看代码。#import "ViewController.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UIImageVi原创 2015-12-27 10:03:24 · 2141 阅读 · 0 评论 -
iOS 图片取色器
iOS图片取色计,直接上代码#import "ViewController.h"@interface ViewController ()@property(nonatomic,strong)UIImageView *imageView;@end@implementation ViewController- (void)viewDidLoad{ [super viewDidL原创 2015-12-11 13:40:17 · 1615 阅读 · 0 评论 -
iOS,CocoaPods使用介绍
CocoaPods是专门用来管理第三方开源类库的,项目中如果用到很多第三方库,挨个去下载是很麻烦的事,而如果类库更新了又得去重新下载。CocoaPods是非常有用的类库管理工具。下面详细介绍如何使用CocoaPods:1.使用CocoaPods,首先得下载它。前提是有Ruby环境(mac 自带)。2.查看mac当前的ruby环境:ruby -vlocalhost:~ gujinyu原创 2015-12-12 11:15:20 · 567 阅读 · 2 评论 -
iOS,图片轮播器,简单好用,拿来直接用
有时候肯能会用到图片轮播器,做广告的效果。下面详细介绍如何实现图片轮播器1.新建一个项目,导入5张图片(为了代码方便,我把图片命名规范了,其实无所谓)2.在mainstoryboard中拖入ScrollView和Page Control(也可以代码写,或者是自定义xib) 设置page control的 Current Page属性,决定轮播的当前页显示的颜色原创 2015-12-14 21:38:19 · 1350 阅读 · 0 评论 -
iOS,SQLite
SQLIte是一个轻量级的数据库,占用内存小,在iOS开发中,如果要做一些缓存数据的处理,有时候就考虑要用到SQLIte了。1.在写代码前注意加上libsqlite3.tdb下面直接上代码://// ViewController.m// SQLite//// Created by 123 on 15/12/13.// Copyright © 2015年 GJY. Al原创 2015-12-13 10:52:20 · 529 阅读 · 0 评论 -
GCD之 串行队列,并行队列,全局队列,主线程队列
/* 进程:正在进行中的程序被称为进程,负责程序运行的内存分配 线程:是进程中一个独立的执行路径,负责程序中代码的实际运行 1.一个进程中至少包含一条线程。可以将耗时的执行路径放在其他线程中执行 2.创建线程的目的就是为了开启一条新的执行路径,运行指定的代码,与主线程中的代码实现同时运行。 3.线程没有完成之前不能被杀掉,但是可以暂停,休眠。 4.并发:指两个或多个原创 2016-02-27 20:03:24 · 882 阅读 · 0 评论 -
iOS NSOperation之详解1(NSInvocationOperation,NSBlockOperation,设置依赖)
1.NSOperation本身是抽象基类,因此必须使用它的子类。2.Foundation框架提供了两个具体子类供我们使用:NSInvocationOperation和NSBlockOperation3.我们也可以自定义子类继承NSOperation,重写mian()方法即可。下面我们通过实际代码一个一个来理解:1.使用系统提供的两个子类:NSInvocationOperation和原创 2016-03-11 09:37:33 · 1031 阅读 · 0 评论 -
iOS之GCD再谈(dispatch_group,dispatch_semaphore)
所有的话都在代码里了,仔细一个一个测下来理解体会肯定会有收获哦!#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad{ [super viewDidLoad]; //[self test1]原创 2016-03-05 22:25:03 · 802 阅读 · 0 评论