自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

gujinyue

欢迎访问,共同进步!

  • 博客(74)
  • 资源 (2)
  • 收藏
  • 关注

原创 iOS制作.a静态库

iOS 制作.a静态库 在实际的开发工作中, 很多时候我们希望别人在使用自己开发的功能时,看不到自己的核心代码。 这时候就要制作静态库了。1. 明确几个概念:库就是代码的集合。静态库在链接时会被拷贝到可执行文件中。 有多个程序使用了该静态库, 手机系统中就会有多份该静态库源码。iOS中静态库的存在形式: .a 和 framework。.a+.h+资源 = framwork2. 开始制

2018-04-02 19:34:55 616

原创 自定义URL Schemes

1. 自定义URL Schemes2. 调起第三方App3. App之间数据传递

2017-10-31 19:10:23 2071

原创 iOS全景SDK

iOS全景SDK 最近在项目是需要使用百度全景功能, 进行了一番调研。 百度iOS全景SDK 是为iOS移动平台提供的一套全景图服务接口, 面向广大开发者提供全景图的检索、显示和交互功能, 从而更加清晰方便地展示目标位置的周边环境。 百度iOS全景SDK提供的所有服务都是免费的, 接口无次数限制。需要申请密钥才能使用百度全景SDK。功能介绍检索全景图: 根据商户ID、坐标

2017-07-20 20:58:58 2927

原创 Cordova

Cordova新手上路 Cordova前身是PhoneGap, Adobe将PhoneGap给Apache后成为开源项目, 改名为Cordova。 Cordova提供了一组设备相关的API, 通过这些API, 移动应用能够用JS代码访问原生的设备功能, 如麦克风、摄像头等。 Cordova 提供了一组统一的JavaScript类库, 和为这些类库所用的设备相关的原生后台代码。

2017-05-02 09:58:38 349

原创 HTTPS原理剖析

HTTPS 超文本传输安全协议: Hypertext Transfer Protocol Secure, 是一种网络安全传输协议。在计算机网络上, HTTPS经由超文本传输协议(HTTP)进行通信, 但是利用SSL/TLS来加密数据包。本质就是在TCP运输层和HTTP应用层之间加了一层安全机制。目的是提供对网络服务器的身份认证, 保护交换数据的隐私和完整性。为何需要HTTPS? 不使用SS

2017-03-16 18:51:50 632

原创 iOS_Runtime修改变量值,交换方法实现,动态添加类,成员变量和方法

Runtime修改变量值,交换方法实现,动态添加类,成员变量和方法

2016-07-27 11:36:38 8227

原创 iOS_Runtime

Runtime,获取成员变量,属性,方法,协议。

2016-07-22 16:04:43 1154

原创 NSString使用大全

字符串截取,比较,去除空格, 遍历,拼接,类型转换

2016-07-18 16:08:21 1116 2

原创 iOS 设备信息

在iOS开发中,有时候我们需要使用跟设备相关的一些信息,下面就详细介绍一下设备相关信息:1.获取当前设备所有者名称:2.获取设备的类别,是iPhone,iPod,还是iPad这里要获取iPhone的具体类型,要有如下代码:- (NSString *)deviceString { // 需要#import "sys/utsname.h" st

2016-07-07 10:45:56 1205

原创 iOS PureLayout的基本使用(二)

上篇博客讲解了PureLayout的基本使用,主要是控制一个子类在父类中的位置,然后通过查看源码发现其实就是控制两个View之间的位置关系,同时也讲了一些注意点。今天继续讲解如何使用PureLayout设置不同View之间的约束。比如看如下代码:很明显设置了view1距离父View顶部和左部分别是20,然后设置了view1的宽和高。效果如下:再加入如下代码:

2016-07-06 21:07:49 2107 1

原创 iOS PureLayout的基本使用(一)

AutoLayout是从iOS6开始苹果引入来取代autoresizing的新的布局技术,现在用的比较多的可能是Masonry和PureLayout。今天主要讲讲如何使用PureLayout,它比Masonry更加轻量级,只是以category的形式辅助苹果已有的NSLayoutContraint,使用起来也非常方便。1.首先了解一下如下几个枚举:1)ALEdge: 分别是左,右,

2016-07-01 09:51:06 2961

原创 iOS中通知的使用NSNotificationCenter

在实际的开发中,通知这一手段还是比较常用的。那今天就详细讲讲通知。1.通知中心(NSNotificationCenter)实际是在程序内部提供了一种广播机制。把接收到的消息,根据内部的消息转发表,将消息转发给需要的对象。这句话其实已经很明显的告诉我们要如何使用通知了。第一步:在需要的地方注册要观察的通知,第二步:在某地方发送通知。(这里注意:发送的通知可能是我们自定义的,也可能是系统的)。

2016-06-04 13:47:26 26109 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 54212 5

转载 Xcode git 忽略userinterfacestate文件|.DS_Store文件

在项目合作中,如果不忽略这个文件的话,每次commit 都会发现有这个烦人的文件被m了,其实可能你压根就没改代码,这就太恶心了。那其实只要忽略掉它就行了:1.进入项目目录。cd 拖文件2.在终端输入:gitrm--cached*.xcuserstategit commit -m "Removed cached files"git push有时候会

2016-05-24 19:12:36 2750

原创 UIWebView的基本介绍(一)

现在App开发混合式开发还是比较常见的,即传统模式与PC网页端相结合。那iOS中就必须得提一下UIWebView这个控件了。在一些媒体资讯类的新闻详情页中尤为常见。既能够提高开发效率,又有非常良好的用户体验。那下面就详细介绍一下UIWebview这个控件。1. 首先还是有必要了解以下几个事情的:    (1)//自动对页面进行缩放以适应屏幕        @property(non

2016-05-05 21:29:26 593

原创 UITableView基本使用(二)

上篇博客讲解了UITableView的最基本的使用,这篇博客做一些补充。有时候我们需要实现这样的功能:1.比如改变系统自带的选中cell的颜色:   可以在cellForRowAtIndexPath代理方法中创建cell时,自定义一个UIView,frame等于cell.frame,然后设置这个自定义View的背景色。代码如下://cell选中时任意颜色 cell.

2016-05-02 15:06:12 4335 1

原创 UITableView基本介绍(一)

上篇博客大致讲解了UIScrollView的使用,相信大家对于UIScrolView已经有一定了解了。那其实在实际的开发中,我们使用更多的可能还是UITableView。学会使用UITableView还是非常重要的,今天就仔细讲解一下UITableview的实际使用。1.先从最基本的使用开始。首先要知道几个事情:(1)UITableView有两种样式:(普通样式)UITableViewSt

2016-05-02 10:58:27 3609

原创 UIScrollView基本使用(一)

今天这种日子还在写代码的,一定是真爱。好吧我承认闲的无聊。下面讲一讲UIScrollView的基本使用。使用场景:一般当手机屏幕不能完全显示需要展示的内容的时候,就会考虑使用UIScrollView了。                  可以通过拖拽将屏幕外的内容显示出来。1.使用前要知道几个属性的含义:(1)CGSize  contentSize:这个属性代表可以滚动的区

2016-05-01 11:45:50 1371 2

原创 UICollectionView的基本使用(一)

做iOS的对于UITableView一定都挺了解的。比如实现代理啊,cell重用啊,自定义cell啊等等。其实还有一个非常好用的控件UICollectionView,实现起来意思与UITableView类似。那下面就讲一下如何使用UICollectionView来实现项目中的一些需求。这篇文章只讲解基本使用。1.首先创建一个JYCollectionViewCell类,继承自UICollec

2016-04-27 19:34:42 664

原创 iOS_下拉图片放大效果

今天讲一下App中比较常见的一个效果。就是下拉的时候,图片等比例放大。网上一些demo都有这那的小瑕疵。稍微研究了一下,做了点修改,效果很OK。具体如下:1.新建一个类:JYStretchTableViewHeader#import #import @interface JYStretchTableViewHeader : NSObject@property (nonatomic

2016-04-12 14:17:32 652

转载 Chisel的安装

转载地址:http://www.jianshu.com/p/3e4b10083b4d安装Chisel1.确保终端安装了Homebrew2.终端执行命令:brew install chisel  输入命令后我遇到第一个问题。brew install chisel 后可能出现的问题碰见这个问题终端执行命令:sudo chown -R ${USER} /Library/C

2016-04-07 13:40:36 952

原创 iOS之键盘弹出视图上移

有时候搞开发会碰到一个问题,就是当点击一个UITextField时,弹出虚拟键盘会将这个文本控件遮住。这无论从开发角度还是用户体验来说,都是不行的。其实要解决这个问题也是很简单的,只要获取键盘没弹出前键盘的Rect,键盘弹出后键盘的Rect,其实最主要的变化还是在于Y值嘛,所以只要两者相减就能得到需要移动的距离,然后做个动画就OK了。那具体代码如下:#import "Vie

2016-04-01 12:40:50 19688

原创 Category(类别)和扩展(Extension)的区别

类别:1.类别不能为已存在的类添加实例变量。2.类别中添加的方法优先级高,会覆盖原类中的方法3.原类中的私有方法,可以在类别中定义一下,这样就可以使用了。4.在categroy中定义的方法可以被子类继承。扩展:1.扩展中可以定义属性,变量,和方法2.扩展中定义的属性和方法不能被子类继承3.扩展中只能对自定义的类添加方法,不能对系统类添加方法。

2016-03-20 12:01:50 991

转载 iOS中堆和栈的区别

转载地址:http://www.cnblogs.com/iphone520/p/3355460.html管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来讲,释放工作有程序员控制,容易产生memory Leak。申请大小:栈:在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存区域。这句话的意思是栈顶上的地址和栈的最大容量是系统预先规定好的,在Windows下,栈的大...

2016-03-20 08:56:33 328

原创 iOS数据持久化之偏好设置

iOS中的数据持久化方式:1.plist 文件 2.偏好设置 3.NSKedArchiver(归档)4.SQLite5.CoreData下面详细讲一下偏好设置:/* 1.偏好设置会将所有数据保存到同一个文件中。即preference目录下的一个以此应用包名来命名的plist文件。 2.偏好设置是专门用来保存应用程序的配置信息的,一般不要在偏好设置中保存其他数据。 3.使用偏好设置对数

2016-03-19 09:31:03 663

转载 iOS沙盒(sandbox)机制及获取沙盒路径

转载地址:http://blog.csdn.net/lookyou111/article/details/22935613iOS沙盒(sandbox)机制及获取沙盒路径 一、 每个iOS应用SDK都被限制在“沙盒”中,“沙盒”相当于一个加了仅主人可见权限的文件夹,苹果对沙盒有以下几条限制。    (1)、应用程序可以在自己的沙盒里运作,但是不能访问任何其他应用程序的沙盒

2016-03-18 10:46:36 341

转载 CocoaPods 导入第三方库头文件自动补齐

转载地址:http://blog.csdn.net/meegomeego/article/details/17567447使用了一段时间CocoaPods来管理Objective-c的类库,方便了不少。但是有一个小问题,当我在xcode输入import关键字的时候,没有自动联想补齐代码的功能,需要手工敲全了文件名,难以适应。简单说就是这么几步:选择Target

2016-03-16 19:16:17 529

转载 iOS平台的数据库框架 FMDB

转载地址:http://www.cnblogs.com/wendingding/p/3871848.html如果想了解SQLite,地址:http://blog.csdn.net/qq_27325349/article/details/50281501/* FMDB是iOS平台的SQLite数据库框架 FMDB有三个主要的类 (1)FMDatabase:一个FMDatabas

2016-03-15 20:08:42 450

转载 如何使用xcode配合instruments分析iOS内存泄露

http://jingyan.baidu.com/article/acf728fd4a6c80f8e410a344.html

2016-03-14 21:49:14 325

转载 iOS之Runtime

觉得这个讲的不错,可以去学习一下http://www.samirchen.com/objective-c-runtime/

2016-03-12 13:08:31 515

原创 iOS_Block界面传值

使用Block进行界面之间的传值代码比较简洁,下面请看具体代码:1.创建两个控制器JYRootViewController和JYDetailViewController2.AppDelegate.m- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)

2016-03-11 21:53:36 461

原创 iOS_Block详解2(解决循环引用)

请仔细看代码:/* 1.Block对象通常会使用外部创建的其它变量(基本类型的变量,或者指向其他对象的指针)---》外部变量。 2.当执行block对象时,为了确保其下的外部变量能够始终存在,相应的block对象会捕获这些变量。 1)对基本类型的变量,捕获意味着程序会拷贝变量的值,并用Block对象内的局部变量保存。 2)对指针类型的变量,block对象会使用强引用。意味着

2016-03-11 20:47:55 549

原创 iOS_Block详解1

1.Block是对象,它封装了一段代码。block可以作为函数参数和函数返回值。2.Block可以访问局部变量,但不能修改(用__block或者static描述变量就可以修改了)   不能修改是因为系统在定义块时就会把局部变量的值保存在块中,不是等到执行的时候才去读取局部变量的值。3.使用Block的时候注意循环引用问题下面我们通过代码来看一看。-(void)test1{

2016-03-11 19:11:14 360

原创 iOS NSOperation之详解1(NSInvocationOperation,NSBlockOperation,设置依赖)

1.NSOperation本身是抽象基类,因此必须使用它的子类。2.Foundation框架提供了两个具体子类供我们使用:NSInvocationOperation和NSBlockOperation3.我们也可以自定义子类继承NSOperation,重写mian()方法即可。下面我们通过实际代码一个一个来理解:1.使用系统提供的两个子类:NSInvocationOperation和

2016-03-11 09:37:33 1015

原创 iOS之GCD再谈(dispatch_barrier_async)

假如有这么一个需求,8个线程,前面4个要并行执行,执行完后执行第5个,然后在并行执行后面3个。那么就要考虑dispatch_barrier_async了/* dispatch_barrier_async 作用是在并行队列中,等待前面几个操作并行操作完成,然后执行dispatch_barrier_async中的操作, 然后再恢复并行队列所有的执行状态,继续并行执行 */#impor

2016-03-06 09:23:26 670

原创 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 773

原创 iOS深复制浅复制

深复制:增加一个指针并且申请一块新的内存,使这个增加的指针指向这个新的内存浅复制:只是增加了一个指针,指向已经存在的内存。1.Foundation对于不可变复制对象而言,copy做了优化,相当于retain。也就是当我们copy的是一个不可变对象时,默认的copy都是浅拷贝,相当于retaincopy优化:在copyWithZone:方法中,return [self tre

2016-03-04 13:16:16 439

转载 理解assign,copy,retain

今天学习这方面知识的时候看到一篇文章讲的挺通俗易懂的。转载过来:http://my.oschina.net/openlab/blog/89354ARC中的strong相当于非ARC中的retain

2016-03-02 17:06:06 385

原创 iOS应用程序生命周期

/* 1.Not Running(未运行):应用程序未启动或者应用程序被系统终止。 2.Inactive(不活动):程序在前台运行,但不能接收事件处理。当应用要从一个状态切换到另一个不同的状态时,中途过渡会短暂停留在此状态。 3.Active(活动):程序在前台运行且能接收到事件。这是应用在前台运行时所处的正常状态。 4.Background(后台):应用处在后台运行,并且还在

2016-03-02 10:41:14 371

原创 iOS内存管理之自动释放池延迟销毁对象

1.如果在函数、方法的开始处将对象的引用计数加1,在函数、方法不需要该对象的时候将其引用计数减1,这思想基本OK。2.问题:有些函数、方法需要返回一个对象,而系统可能在该对象被返回之前,就已经销毁了对象。那么为了保证函数、方法返回的对象在被返回之前不被销毁,我们就要使用自动释放池进行延迟销毁(NSAutoreleasePool)。3.所谓自动释放池,是指它是一个存放对象的容器(集合),而自

2016-03-01 13:20:20 2608 1

ReSideMenu

ReSideMenu代码类,下载后可以实现侧滑功能啦

2015-12-13

sqserverdriver

有需要的朋友拿去吧。sqlserver2005的数据驱动包

2015-06-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除