自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

liwuking的专栏

我爱IT, 我爱分享

  • 博客(128)
  • 问答 (1)
  • 收藏
  • 关注

原创 GPUImage图片添加水印

UILabel *lab = [[UILabel alloc] initWithFrame:CGRectMake(100, 480, 120, 20)]; lab.text = @"滤镜信息"; lab.font = [UIFont systemFontOfSize:20]; lab.textColor = [UIColor redColor]; lab.b...

2018-04-09 15:20:10 1719 1

转载 ios中json解析出现的null问题

在iOS开发过程中经常需要与服务器进行数据通讯,Json就是一种常用的高效简洁的数据格式。问题现象但是几个项目下来一直遇到一个坑爹的问题,程序在获取某些数据之后莫名崩溃。其实很早就发现了原因:由于服务器的数据库中有些字段为空,然后以Json形式返回给客户端时就会出现这样的数据:?1"somevalue":null

2016-01-27 21:15:20 548

转载 Object-C代码规范

我们写出来的代码会给很多人看,为了使代码清晰简洁,方便阅读理解,都会统一遵从一定的代码规范,Objective-C同样如此。    主要参考规范:    1.Google Objective-C Style Guide    2.Coding Guidelines for Cocoa    简单总结一下目前接触到的:    1.代码行度最大为100列

2015-10-28 16:56:14 909

转载 进程和线程的区别

简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻

2015-06-15 22:29:34 510

转载 TCP和UDP的区别

TCP协议与UDP协议的区别    首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。TCP/IP协议集包括应用层,

2015-06-15 22:21:12 440

转载 Extension

extension可以认为是匿名的category,但是这个extension相对于category有有一个特殊功能:在extension中可以定义可写的属性,公有可读、私有可写的属性(Publicly-Readable, Privately-Writeable Properties)一般这样实现!举例说明如下:1. 创建测试程序empty applicatio

2015-06-09 16:49:16 549

原创 Category

二、category是什么类别是一种为现有的类添加新方法的方式。利用Objective-C的动态运行时分配机制,Category提供了一种比继承(inheritance)更为简洁的方法来对class进行扩展,无需创建对象类的子类就能为现有的类添加新方法二、类别的局限性有两方面局限性:(1)无法向类中添加新的实例变量,类别没有位置容纳实

2015-06-09 16:43:26 450

转载 UITableView优化

看到一个很好的开源项目VVeboTableViewDemo,是关于如何优化UITableView的。加上正好最近也在优化项目中的类似朋友圈功能这块,思考了很多关于UITableView的优化技巧,相信这块是难点也是痛点,所以决定详细的整理下我对优化UITableView的理解。UITableView作为iOS开发中最重要的控件之一,其中的实现原理很是考究。Apple在这块的优化水平

2015-06-08 10:53:34 100

转载 NSNotification的几点说明

原文地址:http://blog.csdn.net/wzzvictory/article/details/84895161、NSNotification消息的同步性①NSNotification使用的是同步操作。即如果你在程序中的A位置post了一个NSNotification,在B位置注册了一个observer,通知发出后,必须等到B位置的通知回调执行完以后才能返回到A处继续

2015-05-25 18:11:36 659

转载 SQLite使用

SQLite是目前主流的嵌入式关系型数据库,其最主要的特点就是轻量级、跨平台,当前很多嵌入式操作系统都将其作为数据库首选。虽然SQLite是一款轻型数据库,但是其功能也绝不亚于很多大型关系数据库。学习数据库就要学习其相关的定义、操作、查询语言,也就是大家日常说得SQL语句。和其他数据库相比,SQLite中的SQL语法并没有太大的差别,因此这里对于SQL语句的内容不会过多赘述,大家可以参考SQLit

2015-05-24 18:29:13 860

转载 xib原理

原文出处:http://blog.csdn.net/xn4545945用文本标记语言来进行布局,用的最多的应该是HTML语言。HTML可以理解为有一组特殊标记的XML语言。一、iOS中xib与storyboard显示原理在iOS中主要的布置界面的方式有3种:代码,xib,storyboard。1. 代码代码布置界面是万能的,但通常很复杂。布置一个简单的界

2015-05-23 23:32:27 1161

转载 GCD使用01

介绍:Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统。这建立在任务并行执行的线程池模式的基础上的。它首次发布在Mac OS X 10.6 ,iOS 4及以上也可用。设计:GCD的工作原理是:让程序平行排队的特定任务,根据可用的处理资源,安排他们在任何可用的处理器核心上执行任务。一个任务可

2015-05-23 23:17:48 466

原创 block内存管理

1,block引用局部变量(1)局部变量在block中使用,引用计数会加1;(2)若局部变量用__block修饰,则在block块中使用该变量引用计数不变2,block引用全局变量(1)全局变量在block里面使用,变量自身的引用计数不变,而当前属性所在的对象的引用计数会加1,使用__block修饰该属性,属性所在的对象的引用计数仍然加1;BlocksBlo

2015-05-23 22:24:56 511

转载 block的使用

著作权声明:本文由http://blog.csdn.net/totogo2010/原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!另外:http://blog.csdn.net/enuola/article/details/8674063代码块本质上是和其他变量类似。不同的是,代码块存储的数据是一个函数体。使用代码块是,你可以像调用其他标准函数一样,传入参

2015-05-23 22:18:02 460

转载 KVC 与 KVO 理解

KVC 与 KVO 理解KVC 与 KVO 是 Objective C 的关键概念,个人认为必须理解的东西,下面是实例讲解。Key-Value Coding (KVC)KVC,即是指 NSKeyValueCoding,一个非正式的 Protocol,提供一种机制来间接访问对象的属性。KVO 就是基于 KVC 实现的关键技术之一

2015-05-05 23:04:09 458

原创 隐藏、显示tabbar

//iOS7时,隐藏tabbar    NSInteger count = self.navigationController.viewControllers.count;    if (count == 1) {        self.tabBarController.tabBar.hidden = NO;    } else {        if (UIDeviceSy

2015-04-21 17:53:36 482

转载 tableView 刷新单行

[tableView reloadData];可以将整个tableview的数据刷新,但有些时候我们可能只更改了某一行或多行的数据,不想全部重新来过,怎么办呢?这就要用到下面这个方法了。- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)anim

2014-12-04 19:17:44 941

转载 设置UISegmentedControl的字体大小、颜色

NSDictionary *dic = [NSDictionarydictionaryWithObjectsAndKeys:[UIColorblackColor],UITextAttributeTextColor,  [UIFontfontWithName:@"SnellRoundhand-Bold"size:14],UITextAttributeFont ,[UIColorwhiteColo

2014-11-28 09:28:21 2496

转载 ios修改textField的placeholder的字体颜色、大小

/第一种       UIColor *color = [UIColor whiteColor];      _userName.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"用户名" attributes:@{NSForegroundColorAttributeName: color}];  

2014-11-28 09:27:25 539

转载 【IOS开发基础】之判断NSString为纯数字

//判断是否为整形:- (BOOL)isPureInt:(NSString*)string{    NSScanner* scan = [NSScanner scannerWithString:string];    int val;    return[scan scanInt:&val] && [scan isAtEnd];}

2014-11-28 09:20:40 1890

转载 iOS开发——keychain的使用 唯一识别苹果设备

通常情况下,我们用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码、证书等等,就需要使用更为安全的keychain了。keychain里保存的信息不会因App被删除而丢失,在用户重新安装App后依然有效,数据还在。使用苹果官方发布的KeychainItemWrapper或者SFHFKeychainUtils很方便,后来看到 iphone使用keychain来存取用户

2014-11-26 19:58:24 599

转载 各种正则相关

身份证号码验证正则表达式需要一个简单的验证身份证号的正则表达式,从网上查了很多,都有问题,主要是只要超过15位,都能够通过,于是自己查了半天手册,写了下面这个式子,能够满足简单的要求:1、15位或18位,如果是15位,必需全是数字。2、如果是18位,最后一位可以是数字或字母Xx,其余必需是数字。/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))

2014-11-26 10:51:57 523

转载 用宏定义设置字体

在iOS应用App开发中,常常需要对视图、控件的字体、字号进行设置,需要逐一设置,当界面一旦多的时候,如果需要对字体设置进行修改,既是一件麻烦的工作,也容易遗漏,造成代码不一致。解决这个问题,一个好办法就是使用宏定义,在C/C++编程中常用的技巧。 下面为应用宏定义使用字体的一个具体实例: 对应用中需要用到的字体进行宏定义。?12

2014-10-29 14:38:14 2380

转载 3种拨打电话的方式

1,这种方法,拨打完电话回不到原来的应用,会停留在通讯录里,而且是直接拨打,不弹出提示NSMutableString * str=[[NSMutableString alloc] initWithFormat:@"tel:%@",@"186xxxx6979"];    //            NSLog(@"str======%@",str);[[UIApplicati

2014-10-24 15:56:27 887

转载 iOS开发系列--网络开发

代iOS开发系列--网络开发2014-10-22 08:34 by KenshinCui, 559 阅读, 10 评论, 收藏, 编辑概览大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的。如今,网络编程越来越普遍,孤立的应用通常是没有生命力的。今天就会给大家介绍这

2014-10-23 16:55:38 1202

原创 NSSet类型 以及与NSArray区别

NSSet到底什么类型,其实它和NSArray功能性质一样,用于存储对象,属于集合; NSSet  , NSMutableSet类声明编程接口对象,无序的集合,在内存中存储方式是不连续的,不像NSArray,NSDictionary(都是有序的集合)类声明编程接口对象是有序集合,在内存中存储位置是连续的;        NSSet和我们常用NSArry区别是:在搜索一个一个元素

2014-10-22 17:35:16 534

转载 如何让view只响应一个按钮

一些应用经常会在一个view上放多个按钮,比如登录页面,就会有注册与登录按钮。理论上讲注册和登录按钮是不能同时按下的,但是如果你同时按下这两个按钮,这两个东东都会显示响应高亮状态,其结果就不可预知了。这种情况经常会被测试童鞋当成bug。其实UIView类属性有个exclusiveTouch属性,表示是否该view响应触摸是排他的。默认的设置是NO,即不排他。如果想让按钮排他响应,只需将按钮

2014-09-30 16:45:24 822

转载 addChildViewController的使用

在苹果的WWDC2011大会视频的《Session 101 – What’s New in Cocoa》 和《Session 102 – Implementing UIViewController Containment》 中介绍了苹果在iOS5中给UIViewController新增加的5方法以及一个属性:

2014-09-02 14:58:36 689

原创 NSJSONSerialization介绍

//将二进制数据转化为字典+(NSDictionary *)jsonWithData:(NSData *)data{        NSDictionary *dict = [NSJSONSerializationJSONObjectWithData:data options:NSJSONReadingMutableContainerserror:nil];    

2014-08-22 16:14:10 775

原创 stringByTrimmingCharactersInSet函数过滤字符串中的特殊符号

首先自己定义一个NSCharacterSet, 包含需要去除的特殊符号    NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"@/:;()¥「」"、[]{}#%-*+=_\\|~<>$€^•'@#$%^&*()_+'\""];由于NSString中有全角符号和半

2014-08-22 15:54:17 632

原创 如何判断 一组字符 是不是纯数字?

1用正则表达式 //是否是纯数字+ (BOOL)isNumText:(NSString *)str{    NSString * regex        = @"(/^[0-9]*$/)";    NSPredicate * pred      = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", reg

2014-08-22 15:49:08 990

转载 设置UIButton的文字显示位置、字体的大小、字体的颜色

btn.frame = CGRectMake(x, y, width, height);[btn setTitle: @"search" forState: UIControlStateNormal];//设置按钮上的自体的大小//[btn setFont: [UIFont systemFontSize: 14.0]];    //这种可以用来设置字体的大小,但是可能会在将

2014-08-22 15:41:39 467

转载 iOS开发- 蓝牙后台接收数据(BLE4.0)

最近在做一个蓝牙相关的项目, 需要在应用进入后台, 或者手机属于锁屏状态的情况下, 仍然保持蓝牙连接, 并且能正常接收数据。本来以后会很麻烦, 但是学习了下..发现就2步而已。简单的不能再简单了。好了。下面是具体实现办法。1.在xxx-info.plist文件中, 新建一行  Required background modes  , 加入下面两项。

2014-08-22 15:36:54 921

原创 NSValue用法

我们可以使用NSValue来辅助我们实现一些简单数据结构的封装。比如结构体的风筝

2014-07-29 23:30:04 668

原创 UIButton图片拉伸

在UIButton中加入一个UIImageView,拉伸imageView的UIimage,然后将button的背景设为clearColor等等。把imageView放入button中,//刚才imageV拉伸的代码

2014-07-28 23:24:38 1309

转载 IOS图像拉伸技巧

纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要包含以下几个要素:实用的功能、极强的用户体验、华丽简洁的外观。华丽外观的背后,少不了美工的辛苦设计,但如果开发人员不懂得怎么合理展示这些设计好的图片,将会糟蹋了这些设计,功亏一篑。比如下面张图片,本来是设计来做按钮背景的: button.png,尺寸为:24x60现在我们把它用作为按钮背景,按钮尺寸是150x50

2014-07-28 23:18:35 524

转载 iOS 在UILabel显示不同的字体和颜色

在项目开发中,我们经常会遇到在这样一种情形:在一个UILabel 使用不同的颜色或不同的字体来体现字符串,在iOS 6 以后我们可以很轻松的实现这一点,官方的API 为我们提供了UILabel类的attributedText, 使用不同颜色和不同字体的字符串,我们可以使用NSAttributedText 和 NSMutableAttributedText 类来实现。

2014-07-28 23:15:09 831

转载 NSTimer用法,暂停,继续,初始化

NSTimer的使用方法1、初始化+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;+ (NSTimer *)scheduledTimerWit

2014-07-28 23:03:29 628

转载 dealloc的使用

iOS开发的时候,使用ARC的话,dealloc函数是不需要实现的,写了反而会出错。但有些特殊的情况,dealloc函数还是需要的。比如,在画面关闭的时候,需要把ViewController的某些资源释放,在viewDidDissppear不一定合适,viewDidUnload一般情况下只在memory warning的时候才被调用。不用ARC的情况下,我们自然会想

2014-07-28 23:00:39 928

原创 NSdate详解

1 // 当前时间创建NSDate        NSDate *myDate = [NSDate date];        NSLog(@"myDate = %@",myDate);2 //从现在开始的24小时        NSTimeInterval secondsPerDay = 24*60*60;        NSDate *tomorrow

2014-07-28 22:53:41 695

空空如也

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

TA关注的人

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