自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 资源 (2)
  • 收藏
  • 关注

原创 ios设计模式

IOS设计模式之一(MVC模式,单例模式) 博客分类: ios 本文原文请见:http://www.raywenderlich.com/46988/ios-design-patterns. 由 @krq_tiger(http://weibo.com/xmuzyq)翻译,如果你发现有什么翻译错误,请与我联系谢谢。iOS 设计模式-你可能已经听说过这个词,但是你真正理解它意味着什么吗?虽然大

2018-02-23 23:37:48 310

原创 iOS 代码实践总结

减少对象属性 这个是最容易改善代码质量的一个点,很多代码一眼看上去就会让人感觉很凌乱,一上来就是几十个不同的对象变量定义在里面,这让不同逻辑之间莫名其妙没法分开。一个是定义的方式不对,很多莫名其妙的内部变量暴露在头文件中,让外部调用者根本不知道哪些才是public可以操作的方法。另外实际上,经过我自己这段时间的重构经验来看,大多数是可以通过局部变量或者__block变量来代替的。 1. 头文件中

2018-02-23 22:56:09 256

原创 常用图片加载两种方式

imageNamed 与 imageWithContentsOfFile的区别 如题,是不是大家为了方便都这样加载图片啊 myImage = [UIImage imageNamed:@”icon.png”]; 那么小心了 这种方法在一些图片很少,或者图片很小的程序里是ok的。 但是,在大量加载图片的程序里,请千万不要这样做。 为什么呢 ??????? 这种方法在application

2018-02-23 22:41:56 1904

原创 Xcode7.1与iOS9之坑

先说下要适配iOS9要做的事: 1.更改http为https 两种方案: 一.公司后台服务器更改; 二.作为开发者,可在Xcode暂时退回到http协议. 开发者更改方法如下: 1.在Info.plist中添加App Transport Security Settings (或NSAppTransportSecurity), 类型Dictionary。2.在App Transport S

2018-02-23 22:38:32 640

原创 ios中单例模式

单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。#import <Foundation/Foundation.h> @interface Singleton : NSObject +(Singleton *) getInstance;@end @implementation Singleton+(Singleton

2018-02-23 22:35:18 156

原创 ios应用架构谈本地持久化方案

iOS 应用架构谈 本地持久化方案  iOS应用架构谈 开篇   iOS应用架构谈 view层的组织和调用方案   iOS应用架构谈 网络层设计方案   iOS应用架构谈 动态部署方案   iOS应用架构谈 本地持久化方案  前言 嗯,你们要的大招。跟着这篇文章一起也发布了CTPersistance和CTJSBridge这两个库,希望大家在实际

2018-02-23 22:27:43 197

原创 IOS多线程之Block编程

1 什么是block   iOS SDK 4.0开始,Apple引入了block这一特性。字面上说,block就是一个代码块,但是它的神奇之处在于在内联(inline)执行的时候(这和C++很像)还可以传递参数。同时block本身也可以被作为参数在方法和函数间传递,这就给予了block无限的可能。             对于闭包(block),有很多定义,其中闭包就是能够读取其它函数内部变量

2018-02-23 22:16:00 407

原创 iOS Storyboard 初探Size Class

看的别人写的,保存下来自己看。一、新特性Size Class介绍 随着iOS8系统的发布,一个全新的页面UI布局概念出现,这个新特性将颠覆包括iOS7及之前版本的UI布局方式,这个新特性就是Size Class。Size Class配合Auto Layout可以解决所有(包括iPhone及iPad)iOS设备屏幕尺寸及屏幕旋转时候的UI适配问题 。二、为什么要使用Size Class 直到iPh

2018-02-23 22:14:45 502

原创 安装CocoaPods

安装CocoaPods(根据自己QQ浏览器书签上写的) 1.安装RVM,在终端输入命令 curl -L https://get.rvm.io | bash -s stable 2.载入 RVM 环境(新开 Termal (终端)就不用这么做了,会自动重新载入的) 在终端输入 source ~/.rvm/scripts/rvm 3.检查一下是否安装正确 终端输入 rvm -v 4.用 RVM

2018-02-23 21:38:52 156

原创 iOS Protocol Buffers的搭建详细过程

第一步:下载protobuf-2.4.1。高版本的不兼容。配置protobuf1、cd protobuf-2.4.12、./configure –prefix=自己设定要编译安装的目录3、make4、make install配置环境变量:5、sudo vi 。bash_profile添加配置文件:6、export PROTOBUF= 第2部自己设定的目录 export

2017-05-18 22:10:38 314

原创 文章标题

1.OC里用到集合类是什么? 基本类型为:NSArray,NSSet以及NSDictionary 可变类型为:NSMutableArray,NSMutableSet以及NSMutableDictionary 2.用OC写一个快速排序-(void)quickSortWithArray:(NSMutableArray *)aData left:(NSInteger)left right:(NSIn

2017-05-18 22:08:34 669

原创 重要知识点

1.类扩展,类目的具体写法2.垃圾回收机制: 1. autorelease只是延迟释放,gc(垃圾回收机制)是每隔一段时间询问程序,看是否有无指针指向的对象,若有,就将它回收,它们两者是没有什么关系的 2. AutoreleasePool的真名是NSAutoreleasePool,内部包含一个可变数组NSMutableArray,用来保存声明为autorelease的所有对象,如果一个对象声明为

2017-01-05 00:38:32 294

原创 文件下载

服务端: 1.创建服务端的套接字 2.给套接字绑定一个ip地址(网络字节序的整数ip地址) 3.让套接字处于监听状态 4.创建一个通用的客户端的套接字地址(也即给即将到来的客户端的套接字创建一个地址) 5.根据服务端的套接字和客户端的套接字地址获取客户端的套接字 6.把网络字节序的ip转化为字符串的ip(写这一步是为了让读者更好的识别这个ip地址) 7.对文件描述进行读操

2017-01-05 00:37:35 422

原创 通知中心-广播

广播中心建立广播 收听者注册收听int main(int argc, const char * argv[]){ @autoreleasepool { //只做一次广播/* Listener* l=[[Listener alloc]init]; [l wantToListen]; BJBoradcast* bj=[[B

2017-01-05 00:36:50 205

原创 调用相机

打开相机:[cpp] view plaincopy1.//先设定sourceType为相机,然后判断相机是否可用(ipod)没相机,不可用将sourceType设定为相片库   2.    UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;   3.//    if (![

2017-01-05 00:34:45 304

原创 死锁

死锁的四个必要条件 .操作系统中有若干进程并发执行,它们不断申请、使用、释放系统资源,虽然系统的进 程协调、通信机构会对它们进行控制,但也可能出现若干进程都相互等待对方释放资源才能 继续运行,否则就阻塞的情况。此时,若不借助外界因素,谁也不能释放资源,谁也不能解 除阻塞状态。根据这样的情况,操作系统中的死锁被定义为系统中两个或者多个进程无限期 地等待永远不会发生的条件,系统处于停滞状态,这就

2017-01-05 00:33:59 248

原创 基于TCP。UDP的socket编程

UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!与现在风行的手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。是tcp/ip参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输应用中,分组传输顺序的检查

2017-01-05 00:33:19 558

原创 三次握手

每一次TCP连接都需要三个阶段:连接建立、数据传送和连接释放。 进行三次握手的原因: “已失效的连接请求报文段”的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于

2017-01-05 00:20:09 366

原创 广播和组播的区别

广播和组播的区别:1. 广播只支持在同一个局域网内有效 组播可以跨局域网 2. 广播的对象没有选择权,只能接受 组播的对象可以主动地选择加入这个组播,也可以主动地选择离开这个组播//告诉套接字加入到发送给这个ip的组播的数据setsocket //这里的ip是一个组播ip,并不是某一台具体机器的ip,只要某台机器加入了这个组播,都能够接收到这个组播里面的信息

2017-01-05 00:19:26 1192

原创 关键字Const

constant 也就是常量的意思 1.修饰变量 如const int a =3; 常量a的值不能再修改2.修饰指针 如 const char*p = 123; p[0]=’4’; 是错的, 字符串内容不允许改 char *const p = “123”; p =”456”; 是错误的, 指针不允许再指向其他地址 3.常引用 多用于参

2017-01-05 00:18:54 245

原创 关键字Const

constant 也就是常量的意思 1.修饰变量 如const int a =3; 常量a的值不能再修改2.修饰指针 如 const char*p = 123; p[0]=’4’; 是错的, 字符串内容不允许改 char *const p = “123”; p =”456”; 是错误的, 指针不允许再指向其他地址 3.常引用 多用于参

2017-01-05 00:17:49 222

原创 多线程的几种模型

多线程的几种模型1.对多线程的理解多线程在iOS中用的很多,比如每个asi请求,sdwebimage请求,数据请求,等待网络数据处理,多线程/异步就是为了界面流畅,防止假死, 每一个ASI请求就是一个NSOperation 每一个NSUrlConnection也是一个线程 NSThread是创建线程的一个通用的类,比如创建线程,取消,开始等 NSOperation就是一个简单地以任务为向导的

2017-01-05 00:15:54 3182 1

原创 端口

在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由 器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我们 这里所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻 辑意义上的端口。 如果把IP地址比作一间房子,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536个之多!端口是通过端口号来标记的,端口号只有

2017-01-05 00:10:56 326

原创 单例

单例:单例指一个唯一的,由全局共享的对象,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类static A* g_ aObj=nil; (静态的模块变量) 满足单例的条件: 在整个程序的运行期间A类的对象的个数始终小于等于1 满足对象条件:1.有一块内存 2.对象是被初始化了的(只要把初始化函数设置为私有的方法,外界就不会任意的创建出单例对象

2017-01-05 00:09:47 199

原创 操作与队列

IOS的三种多线程技术(多线程技术的目的:为了在一个CPU上实现快速切换) 1.NSThread 1. [NSThread detachNewThreadSelector:@selector(threadMain:)toTarget:self WithObject:nil]; 这个创建方法一旦创建成功,线程马上运行 2. NSThread *t=[NSThrea

2017-01-05 00:07:07 211

原创 TCP和UDP的区别与联系

TCP—传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 UDP—用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP

2017-01-04 23:57:31 429

原创 tcp.udp

阻塞,非阻塞,信号,异步,超时,复用IOUDP:是一种传输控制协议,但是没有提供任何传输控制策略(只提供了一种措施:校验盒(如果收到了数据那么就可以保证数据是安全的,否则是不会接收受到破坏的数据))UDP传输控制层没有发送缓存,但是有接收缓存TCP:只能保证传输控制层到传输控制层的可靠,并不能保证应用层到应用层的可靠UDP:当服务端的接收缓存满了之后,会将后面的包都丢失掉,/////////////

2017-01-04 23:56:38 172

原创 SQL数据库

1.数据库介绍 数据库: 是一种某种数据模型组织起来并存放存储管理的数据仓库,是硬盘上的一个文件 对数据的操作:增(insert),删(delete),改(update),查(select) 2.常见的服务器数据库 常见的服务器数据库: Access,Oracle,Microsoft SQL Server,Mysql(开源的数据库,国内使用的比较多,已被oracle收购,纳入Oracle了)

2017-01-04 23:52:11 347

原创 socket

3.1套接字(socket)概念 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。 应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进

2017-01-04 23:50:25 182

原创 p2p伪代码

udp客户端:主机列表数组1.发包线程while(1) //每隔3秒扫描一次 { 1.异步通知主线程显示已经发现的主机(这个时候数组元素个数>=0) 2.清空数组 3.发送主机探测包(组播数据包) 4.sleep(3)}2.收包线程 while(1) {收主机探测包的应答包 2.把该主机加入到主机列表数组中}udp服务端:就一个收包线程加入相应的组

2017-01-04 23:49:13 270

原创 NSUserDefaults

NSUserDefaults类提供了一个与默认系统进行交互的编程接口。NSUserDefaults对象是用来保存,恢复应用程序相关的偏好设置,配置数据等等。默认系统允许应用程序自定义它的行为去迎合用户的喜好。你可以在程序运行的时候从用户默认的数据库中读取程序的设置。同时NSUserDefaults的缓存避免了在每次读取数据时候都打开用户默认数据库的操作。可以通过调用synchronize方法来使内存

2017-01-04 23:44:56 1538

原创 MVC

MVC: MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC 应用程序被分成三个核心部件:模型、视图、控制器。 全称是Model View Controller,是模型-视图-控制器的缩写,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化制定界面以及用户交互的同时,不需要重新编写业务逻辑。Model:表示应用程

2017-01-04 23:38:03 808

原创 文章标题

XML优点:1.格式统一,符合标准 2.容易与其他系统进行远程交互,数据共享比较方便 XML缺点:1.XML文件庞大,文件格式复杂,传输占带宽。 2.服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂并且不易维护。 3.客户端不同浏览器之

2017-01-04 23:36:44 173

原创 ios消息推送机制

1.app应用程序注册消息推送 2.IOS跟APNS Server要deviceToken.语言程序接受deviceToken 3.应用程序将deviceToken发送给服务端 4.服务端将离线消息和deviceToken发送给APNS Server 5.APNS Server将离线消息发送给iphone的应用程序不论是iphone客户端和苹果服务器,还是app服务端跟苹果服务器都是需要通过

2017-01-04 23:34:11 328

原创 HTTP的GET请求和POST请求

一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交 Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资

2017-01-04 23:32:47 254

原创 GCD

Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。 dispatch queue分成以下三种: 1)运行在主线程的Main queue,通过dispatch_get_main_queue获取。/*!* @function dispatch_get_main_queue** @abstract* Returns the default que

2017-01-04 23:29:57 171

原创 Block

Blocks定义:是OC中的一种数据类型,在iOS开发中被广泛应用,^是其特有的标志,实现代码包含在{}之间,大多数情况下,以内联inline函数的方式被定义和使用,Block与C语言的函数指针有些相似,但使用起来更加灵活1.格式:返回类型(^块名称)(参数类型)=^(参数列表){代码实现}; 如果没有参数,等号后面参数列表的()可以省略2.示例: int

2017-01-04 23:25:07 161

原创 App上架流程

1.有一个苹果的开发者账号(http://developer.apple.com/),一个mac系统 2.打开http://developer.apple.com/并登录到苹果MemberCenter 3.登录以后可以看到界面列出了你开发需要的一些工具,支持,itunes app管理等内容。 4.申请AppId,对于要发布到AppStore上的程序,都有一个唯一的AppId a.De

2017-01-04 23:23:15 203

原创 归档

归档也叫序列化,是将文件存在硬盘,解档是从硬盘还原5种方式: 第一种、使用属性列表进行归档 如果对象是NSString,NSDictionary,NSArray,NSData或者NSNumber,可以使用writeToFile:atomically方法将数据写到文件,注意这种方式是明文sample:NSArray *array = @[@"abc",@"123",@23.4];if ([arr

2017-01-04 23:21:32 194

原创 OC部分

1.Objective-C可以实现多继承吗?可以实现多个接口吗?Category是什么?重写一个类的方式是用继承好还是用分类好?为什么?2.OC使用协议实现多继承,可以遵守多个协议实现多接口。category是OC中的类别,类别是用于给一个现有类添加新方法。重写类一般采用继承的方式,分类(类别)在给以个类添加同名方法后,会造成原有类中方法的实效,而继承重写的方法,依然可以在使用父类对象调用该方法。3

2017-01-04 23:04:26 273

沙盒目录归档

自己研究的一个沙盒目录归档Demo,比较简单,没啥代码,希望能帮助到大家

2015-11-22

相册自定义

创建自定义相册,设置定时器,自动播发图片,比较简单,没啥代码,希望能帮助到大家。

2015-11-22

空空如也

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

TA关注的人

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