自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

转载 项目总结--Version 1.0(三)

可扩展性决定了项目能走多远,可复用行决定了项目走的是否轻快。 本文主要讨论1.0版本的项目在进行设计时对可复用性和可扩展性的思考,涉及了整个项目分层的所有层(想查阅分层相关部分的可以点这:项目总结--Version 1.0(一)和项目总结--Version 1.0(二))。 由于经验有限,做过多的扩展容易误导其他人,所以本文所做的一些讨论总结只限在...

2015-11-06 13:26:00 119

转载 项目总结--Version 1.0(二)

欢迎加入【iOS/Swift/OC开发交流群|127183325】交流学习 上篇主要介绍了三层中的数据持久层,这一篇来详细说一下剩下的两层:业务逻辑层和表示层。业务逻辑层相对于其他两层来说更能体现整个项目的扩展性和可伸缩性,这一层对表示层和数据持久成起着承上启下的作用,由于表示层的变动比较频繁,所以业务逻辑层需要精心的设计,以便能够承载将来的业务需求...

2015-11-06 13:23:00 134

转载 项目总结--Version 1.0(一)

  欢迎加入【iOS/Swift/OC开发交流群|127183325】交流学习。  公司项目的1.0版本已经结束有一段时间了,2.0版本也逐渐进入尾声,从1.0版本结束就计划着写一下项目总结,一是对项目进行一下思路梳理,二是总结一下之前的工作,找到所遇到的问题和架构的不合理之处,为接下来的版本做准备。由于2.0版本的任务比较紧急,一直没有时间做个系统的整理,只是零零星星的做了一...

2015-11-02 18:06:00 134

转载 iOS内存管理--nonatomic,assign,copy,retain

nonatomic:非原子性访问,不加锁进行同步,多线程并发访问会提高性能。如果不加此属性,默认是原子性访问。assign:简单赋值,不更改引用计数。一般用于基本数据类型。copy:在系统生成的setter方法中,对加了此属性的指针先释放旧值,然后赋予指针传入的新值的拷贝,拷贝工作由copy方法执行。对应的对象必须实现NSCopying协议。 ...

2015-07-22 10:07:00 80

转载 关于copy和mutableCopy方法

OC中创建对象副本的方法有copy和mutableCopy,一个对象在调用copy方法时需要先实现NSCopying协议,通过此方法创建的是不可变的副本;对象在调用mutableCopy方法时需要先实现NSMutableCopying协议,通过此方法创建的时可改变的副本对象。 在使用这两个方法的时候涉及到两个概念:1、深复制...

2015-07-22 10:05:00 84

转载 CocoaPods pod install/pod update更新慢的问题

最近使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:pod install --verbose --no-repo-updatepod ...

2015-07-22 10:04:00 57

转载 关于iOS的Block类型截获自动变量值

Blocks是C语言的扩充功能,可以这样描述Blocks:带有自动变量(局部变量)的匿名函数。很明显,匿名函数就是不带名称的函数。下面主要说得是“带有自动变量(局部变量)”,这点在Blocks中表现为“截获自动变量值”。下面上代码:int main(int argc, const char * argv[]) { @autoreleasepool {...

2015-07-22 10:03:00 87

转载 iOS开发中检测网络状态

在网络应用中,我们要经常对用户的设备进行网络的实时监控,以便让用户了解自己的网络状态,防止一些误会,还可以根据用户的网络状态进行智能处理,节省用户流量,提高用户体验。例如:1.WIFI/3G网络:自动下载高清图片2.低速网络:只下载缩略图3.没有网络:只显示离线的缓存数据苹果官方提供了一个叫Reacha...

2015-07-22 09:56:00 84

转载 HTTP协议(三)之缓存

当我们对容一个URL可能多次请求,并且请求返回的数据都是一样的,比如服务器上的图片,无论下载多少次都是一样的,这个时候我们就可以使用缓存,优点主要有两点:1、避免用户浪费流量 2、提高程序的响应速度缓存分为内存缓存(沙盒缓存)和硬盘缓存。当我们第一次请求数据时,先检查内存缓存中有没有缓存数据,如果有就直接使用内存缓存中的数据,如果没有就检查...

2015-07-22 09:55:00 85

转载 第三方开源库MBProgressHUD的功能扩展

最近用到了第三方开源库MBProgressHUD,感觉真的是很好用,但是在设置提示框的属性时有点重复,代码比较冗余,然后就根据自己的需求简单的扩展了部分功能。使用扩展的这部分可以更方便的创建一个显示提示信息的提示框,提示框的一些属性都可以在创建的时候全部或者部分设置,免去了一个属性一个属性的进行设置。使用起来非常简单,比如,如果想要显示一个纯文字的提示框,2秒后自动消失:...

2015-07-22 09:46:00 79

转载 关于网络开发中XML的使用

一、关于XMLXML和JSON一样,也是网络开发中常用的数据交换格式。XML全称是Extensible Markup Language,翻译过来就是“可扩展标记语言”,一般也经常叫做XML文档。XML的一般格式类似于下面: XML文档一般由以下三部分组成:1、文档声明...

2015-07-22 09:44:00 108

转载 HTTP协议(二)之HTTP请求

一、HTTP请求的方法在HTTP/1.1协议中,定义了8种发送HTTP请求的方法,有GET、POST、OPTION、HEAD、PUT、DELETE、TRACE、CONNECT、PACH。根据HTTP协议的解释,不同的方法对资源有不同的操作方式:1、PUT:增2、DELETE:删3、POST:改...

2015-07-19 23:30:00 212

转载 CocoaPods的安装和使用

一、关于CocoaPodsCocoaPods是一个用来帮助我们管理第三方依赖库的工具。它可以解决库与库之间的依赖关系,下载库的源代码,同时创建一个Xcode的workspace来将这些库与我们的工程连接起来,供我们开发使用。使用CocoaPods的目的是让我们能自动化的、集中的、直观的管理第三方开源库。可以免避免手动导入第三方库时检查依赖关系、重...

2015-07-19 23:24:00 95

转载 关于网络开发中JSON的使用

JSON是一种轻量级的数据交换格式,非常适合网络间的数据交互。JSON的格式和OC中的字典和数组类似。key-value格式的:{“name”:“Tom”, "age":20}数组格式的:["Tom", "Jack"] 在iOS开发中如果要使用JSON,就需要对JSON进行解析。在iOS中,JSON的解析方案主要有以下四中...

2015-07-19 22:06:00 79

转载 HTTP协议(一)

HTTP协议的全称是Hypertext Transfer Protocol,超文本传输协议,是移动客户端和PC端访问网络资源经常使用的一种协议。HTTP协议是在网络开发中最常用的协议之一,它的格式是:http://主机/资源路径。HTTP协议规定了客户端和服务器之间的数据传输格式,使客户端和服务器能够有效的进行数据传输。客户端和服务器进行通信的示例如下图: ...

2015-07-19 21:49:00 155

转载 git使用方法

1、git配置git config --global user.name "xxx"-------配置用户名,上传本地仓库到服务器上的时候,在Gighub上会显示这里配置的上传者信息。git config --global user.email "xxx"-------配置邮箱git config...

2015-07-19 20:22:00 93

转载 观察者模式的具体应用——通知(notification)机制和KVO(Key-Value-Observing)机制

在Cocoa Touch框架中,观察者模式的具体应用有两个——通知(notification)机制和KVO(Key-Value-Observing)机制。1、通知机制。在iOS中通知主要有以下三种:广播通知、本地通知和推送通知。本文所说的通知是广播通知,广播通知除了名字和后两者相似之外其他完全不同。广播通知是Co...

2015-07-19 19:46:00 100

转载 iOS常用设计模式之观察者模式

观察者(Obsserver)模式也叫发布/订阅(Publish/Subscribe)模式,是MVC(模式-视图-控制器)模式的重要组成部分。在软件系统中,一个对象状态的改变可能会连带影响其他很多对象的状态发生改变。观察者模式能够很好的解决这类问题并且最大降低关系类之间的耦合度,给维护、复用和扩展带来很大的方便。观察者模式有四个角色:...

2015-07-19 18:25:00 61

转载 iOS常用设计模式之委托模式

委托模式在Cocoa Touch框架和Cocoa框架中都有很多的应用。例如在应用启动的时候需要的一个类:UIApplication。在程序的入口函数main函数里面:int main(int argc, char * argv[]){ @autoreleasepool { return UIApplicationMain(argc,...

2015-07-19 18:21:00 106

转载 iOS常用设计模式之单例模式

单例模式是iOS设计模式中常用的一种设计模式,它的意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式的作用就是为了解决“应用中只有一个实例”这一类问题。单例模式一般会封装一个静态属性,并提供静态实例的创建方法。下面上代码://// Singleton.h// DesignPatternsDemo//// ...

2015-07-19 18:17:00 90

转载 GCD多线程的使用(五)

上一篇有个函数没有说:dispatch_walltime,这个函数是由struct timespec类型的时间得到dispatch_time_t类型的值。dispatch_time函数通常用于计算相对时间,dispatch_walltime函数用于计算绝对时间。struct timespec类型的时间可以通过NSDate类的对象生成:- (vo...

2015-07-19 18:14:00 67

转载 GCD多线程的使用(四)

关于dispatch_set_target_queue和dispatch_after的使用。 使用GCD的函数dispatch_queue_create创建的Dispatch Queue(Serial Dispatch Queue和Concurrent Dispatch Queue)使用的优先级都是默认优先级,有时根据需求可能会变更优先级,变更优先级要使...

2015-07-19 11:50:00 66

转载 CD多线程的使用(三)

关于Main Dispatch Queue和Global Dispatch Queue。 上一篇说了创建Dispatch Queue的方法,其实不用dispatch_queue_create函数也可以获取Dispatch Queue,那就是Main Dispatch Queue 和 Global Dispatch Queue。顾...

2015-07-19 01:22:00 108

转载 GCD多线程的使用(二)

记录一下GCD的几个重要API的用法。 dispatch_queue_create * @param label * A string label to attach to the queue. * This parameter is optional and may be NULL. * * @param attr * DI...

2015-07-18 23:09:00 78

转载 GCD多线程的使用(一)

苹果官方给的解释是:Grand Central Dispatch(GCD)是异步执行任务的技术之一。GCD的线程管理是作为系统的一部分来实现的,因此可以统一管理,也可执行任务,比以前的线程更有效率,这也是苹果推荐使用的技术。苹果官方对GCD的说明:开发者要做的只是定义想执行的任务并追加到适当的Dispatch Queue中。这句话有三个关键点:...

2015-07-17 17:24:00 85

转载 ARC有效时,id和void*的显式转换

在ARC有效的情况下编译源代码,必须遵守一定的规则,其中之一就是“id”和“void *”需要显式转换。在ARC无效时,像下面的代码这样进行id变量和void*变量进行强制转换是没有问题的: @autoreleasepool { id obj0 = [[NSObject alloc] init]; ...

2015-07-17 17:09:00 109

转载 UIViewContentMode各类型效果

typedef NS_ENUM(NSInteger, UIViewContentMode) { UIViewContentModeScaleToFill, UIViewContentModeScaleAspectFit, // contents scaled to fit with fixed aspect. remainder is transpare...

2015-07-17 17:05:00 75

转载 stretchableImageWithLeftCapWidth: topCapHeight:ht;

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight;这个方法是UIImage的一个对象方法,它的功能是创建一个左边和上边指定区域不可拉伸,的UIImage对象,第一个参数设置左边不可拉伸区域,第二个参数设置上边不可拉...

2015-07-17 17:04:00 91

转载 分享一些iOS开发的教程

OS教程链接:http://pan.baidu.com/s/1hqBzR9M密码: dbg3swift教程链接:http://pan.baidu.com/s/1DEaFc密码: ucys转载于:https://www.cnblogs.com/arthas/p/4655098.html

2015-07-17 17:01:00 45

转载 导航控制器在pushViewController时的动画卡顿问题

昨天在调试导航控制器的时候发现在push的时候动画有卡顿的现象,出现卡顿问题的代码如下:1 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {2 UIViewController* newController = [[UIViewCo...

2015-07-17 16:50:00 115

转载 cocos2d-x:获取不重复的随机数

先上源码: 1 bool HelloWorld::init() 2 { 3 ////////////////////////////// 4 // 1. super init first 5 if ( !CCLayer::init() ) 6 { 7 return false; 8 } 9 ...

2013-01-14 16:01:00 153

转载 int 转string方法

int 转string的方法,用到了记一个,哈哈 1 /************************************************************************/ 2 /* int to string */ 3 /**...

2013-01-03 09:47:00 82

转载 cocos2d-x关于获取随机数的问题

之前在做一个游戏的时候需要获取随机数1 rand()%(end-start+1)+start; 参数end和start是为了设置获取随机数范围的,要想获取接近真实的随机数需要设置一个种子,比较常用的方法是以当前时间为种子,在cocos2d-x中提供了获取时间的方法,而且获取的时间更精确1 cc_timeval psv;2 CCTime::gettim...

2013-01-03 09:41:00 87

转载 cocos2d-x 自定义对话框实现

//CAlert.h 1 #ifndef __CCALERT_H__ 2 #define __CCALERT_H__ 3 #include "cocos2d.h" 4 USING_NS_CC; 5 enum AlertType{ 6 AlertType_OkAndCancel=0, 7 AlertType_OkOnly, 8 }; ...

2013-01-01 04:15:00 99

转载 This generally means that another instance of this process was already running or is hung in the deb...

今天调试程序提示如下错误:This generally means that another instance of this process was already running or is hung in the debugger字面意思是此线程中已经有一个实例运行....然后做了如下操作:1、停止项目,重新运行,不能解决2、重启模拟器,不能解决...

2012-12-10 14:27:00 151

转载 cocos2d-x:利用CCSpriteBatchNode优化渲染效率

生成精灵同城的方法是CCSprite::spriteWith**,用这种方法每生成一个精灵就进行渲染一次,如果需要渲染的精灵特别多,那就会影响效率。CCSpriteBatchNode的原理是一次性的把需要渲染的精灵全部渲染,然后再生成精灵,在精灵特别多的时候优化效果会很明显。1 CCSpriteBatchNode* batchNode = CCSpriteBatchNode:...

2012-11-27 10:42:00 76

转载 cocos2d-x vs2010配置sqlite

在cocos2d-x中一般使用sqlite的c语言绑定,直接下载其源码,下载地址:http://www.sqlite.org/download.html,下载后解压,如下新建一个项目sqliteTest, 将下载后的sqlite-amalgamation-3070401(这个是我解压后得到的文件夹)文件夹复制到刚才新建的项目class文件夹里面,然后右击sqliteTes...

2012-11-25 12:14:00 85

转载 c/c++ ceil和floor

ceil函数:获取大于参数的最小数 向上取值floor函数:获取小于参数的最大值 向下取值如:ceil(12.0/5) 结果为:3.00000floor(12.0/5) 结果为:2.00000转载于:https://www.cnblogs.com/arthas/archive/2012/11/19/2777279.html...

2012-11-19 14:50:00 87

转载 C实现将指定秒数转化为时:分:秒格式

struct tm l_tm; time_t l_time = 61; gmtime_r(&l_time, &l_tm); char time_char[32]; sprintf(time_char, "%02d:%02d:%02d",l_tm.tm_hour, l_tm.tm_min, l_tm.tm_sec);tm是C中的一个结构体,...

2012-11-14 09:42:00 2099

空空如也

空空如也

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

TA关注的人

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