自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 image 的 AccessibilityIdentifier 属性的使用

有时候我们使用ImageView的时候 想要知道现在的显示的图片是placeHolder的图片还是加载完成或挑选好的图片,但是tag属性只能拿到却不能判断,当然,加几个bool属性也可以完成,但是会有些复杂,如果可以在给imageview 赋图片的时候给图片加个标记,那么下次判断一下标记是不是placeHolder就可以了,很简单。UIImageView * picVi

2017-06-09 13:48:24 307

转载 通过GCD中的dispatch_barrier_(a)sync加强对sync中所谓等待的理解

首先解释下标题里地括号是什么意思,GCD有个函数叫dispatch_barrier_async,还有个函数叫dispatch_barrier_sync,这个括号只是用来防止标题取得太长…>_对于dispatch_barrier_async可能有的朋友没用过,不知道它是干嘛的,简单地介绍一下下,知道的朋友可以跳过此段。 假设我们原先有6个任务要执行,我们现在要插入一个任务0,这个任务0要

2016-12-01 22:31:05 432

转载 gcd中group实现并发任务全部完成后

A B C D 4个并发下载任务,怎样在第一时间知道任务全部完成?dispatch_group 可以帮我们实现这样的控制。上代码,看说明.[objc] view plain copy dispatch_group_t group = dispatch_group_create();    // 某个任务放进 group  di

2016-12-01 22:27:47 273

转载 三种解密 HTTPS 流量的方法介绍

Web 安全是一项系统工程,任何细微疏忽都可能导致整个安全壁垒土崩瓦解。拿 HTTPS 来说,它的「内容加密、数据完整性、身份认证」三大安全保证,也会受到非法根证书、服务端配置错误、SSL 库漏洞、私钥被盗等等风险的影响。很多同学认为只要访问的网站地址前有一把小绿锁就绝对安全,其实不然。本文通过介绍三种最常规的 HTTPS 流量解密方法及原理,浅谈一下 HTTPS 的安全风险。Ma

2016-11-28 17:05:30 714

原创 加密算法rsa

常用的加密算法对称密码算法:是指加密和解密使用相同的密钥,典型的有DES、RC5、IDEA(分组加密),RC4(序列加密);非对称密码算法:又称为公钥加密算法,是指加密和解密使用不同的密钥(公开的公钥用于加密,私有的私钥用于解密)。比如A发送,B接收,A想确保消息只有B看到,需要B生成一对公私钥,并拿到B的公钥。于是A用这个公钥加密消息,B收到密文后用自己的与之匹配的私钥解密即可。反过来也

2016-11-28 16:08:53 892

转载 IOS中的堆栈

在计算机系统中,运行的应用程序的数据都是保存在内存中的,不同类型的数据,保存的内存区域不同。一、内存分区栈区(stack) 由编译器自动分配并释放,存放函数的参数值,局部变量等。栈是系统数据结构,对应线程/进程是唯一的。优点是快速高效,缺点时有限制,数据不灵活。[先进后出]栈空间分静态分配 和动态分配两种。 静态分配是编译器完成的,比如自动变量(auto)的分配。 动

2016-11-24 20:37:49 624

转载 iOS中 category 和extension的区别

原文链接:http://www.cnblogs.com/pengyingh/articles/2348514.htmlCategory和Extension这两个概念,即便对于Java程序员,可能也会感到陌生。这是Objective C为程序员提供的两个强大的动态机制——简单地说,它们允许程序员为已有的对象添加新的方法,即便是在没有该对象的源代码的情况下。Category准确的定义是

2016-11-22 21:30:29 540

转载 iOS 中const的使用

说真的,const是c语言的内容,但一直在iOS没有很好的结合,借此机会说明一下const的用法。在程序中我们会经常的遇到一些常量是经常使用的,我们通常将他们定义成 枚举类型 或是 宏定义类型 再或是const常量,今天介绍的是const常量。用const定义过的常量我们可以在多个文件中使用,相比于宏定义而言有不少优势。宏定义属于预编译指令,在程序运行之前已经编译好了的,比如说

2016-11-15 14:34:30 218

转载 ++a是什么意思?

++a执行完之后a也是将增1它与a++的不同点,可见以下式子:a=1;b=1;c=(a++)+2;//c=3,执行完本句后a=2d=(++b)+2;//d=4,执行完本句后b=2

2016-11-15 14:24:43 3418

转载 Charles 手机抓包连接教程,亲身试过

最近使用Charles抓包,在网上搜教程,很多教程都不完整,弄了好久才弄好连接手机抓包功能,这次自己整理一下,分享出来,也便于以后自己使用,下面开始吧。1、     安装Charles破解安装包地址:http://pan.baidu.com/s/1kUUj2gn包含证书和破解jar包2、安装好,Charles之后,进行配置,要确保在一个wifi环境中,使用ifconfig en

2016-08-18 17:46:33 6362 1

转载 vc跳转界面样式

【Modal跳转界面样式】Modal视图跳转的时候,默认界面是从从下往上出现的。这样其实非常的单调。苹果也给我们提供了几种不同的样式。并且注意,storyboard中的界面如果没有使用segue进行跳转的话,跳转代码中要使用instantiateViewControllerWithIdentifier这个方法来进行绑定。[objc] view plain

2016-08-18 14:56:01 568

转载 ios 跳转指定页面和插入页面

(1)Navigation+Tab构建项目目前市面上大多数的iOS App,都是使用Navigation+Tab的方式来构建,这基本上是一种主流趋势。因为有了这两个工具,可以方便的对程序的流程和页面进行控制,整体的逻辑结构也会变得清晰。我的项目主要使用xib来构建项目,已经删除了自带的Main.storyboard。在AppDelegate.h中声明一个TabBar属性:

2016-08-18 14:42:32 3261

转载 ios上1像素的问题

探讨iOS某个像素点是否显示依据,以摸索为什么iOS没适配的应用在iphone6上面线的粗细会不稳定。有的线会变粗。先说一下系统对某个像素点是否显示的依据://    如果单个像素分为10格,如上图,从上往下第5格被填充或从右往左第5格被填充,则该像素就会被显示;实际上系统会划分的更细,不只是10格。//    下面是横向的测试代码,需要

2015-12-11 14:36:52 1150

转载 iOS项目中常用的第三方开源库

1.项目使用的第三方开源库  项目使用了CocoaPods(类似java中的maven)管理常用的第三方库,一些特殊的单独引用,下面介绍下比较好用的几个。(1)AFNetworking目前比较推荐的iOS网络请求组件,默认网络请求是异步,通过block回调的方式对返回数据进行处理。需要注意的是AFNetworking对服务器返回的ContentType要求比

2015-12-11 11:15:19 322

转载 TCP、UDP、HTTP、SOCKET之间的区别

TCP、UDP、HTTP、SOCKET之间的区别IP:网络层协议;TCP和UDP:传输层协议;HTTP:应用层协议;SOCKET:TCP/IP网络的API。       TCP/IP代表传输控制协议/网际协议,指的是一系列协议。       TCP和UDP使用IP协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协

2015-12-10 16:36:08 417

转载 iOS项目和第三方SDK都使用了AFNetWorking

1.第三方SDK调用的AFNetWorking已修改过类名。不存在类名冲突2.我们不能换网络请求框架,代价太大。3.能不能SDK打包的时候不打包AFNetWorking,让客户自己手动根据需要在项目里引入,如果可以,请指导或给个链接看看哈。解决:SDK打包的时候 将Build Parses - > Compile Sources 里面AFNetworking相关的全

2015-12-09 17:44:39 641

转载 iOS库 .a与.framework区别和制作

一、什么是库?库是共享程序代码的方式,一般分为静态库和动态库。二、静态库与动态库的区别?静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。三、iOS里静态库形式?.a和.framework四、iOS里动态库形式?

2015-12-08 14:12:27 613

转载 iPhone/iOS中保存自定义对象(Custom Object/Custom Class)的数组(NSMutableArray/NSArray)到NSUserDefaults

【问题】在折腾:给Your Second iOS App:BirdWatching添加支持程序退出后,用户数据仍然保留的过程中,遇到一个问题,需要将一个自定义对象的数组,保存到NSUserDefaults。 【解决过程】1.经过学习很多资料后,然后加上一番折腾,先去实现了单个自定义对象的编解码和存储/恢复:贴出部分相关的代码:Bi

2015-11-19 18:13:19 1568

转载 解析LayoutSubviews

解析LayoutSubviews从百度上搜索了一下layoutSubviews的用处,以下是搜索的结果,当然,笔者是会一一验证的.1、 init初始化不会触发layoutSubviews2、 addSubview会触发layoutSubviews3、 设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化

2015-11-19 16:20:42 171

转载 IOS 中block结构的简单用法

自从block出现之后,很多API都开始采用这样的结构,由此可见,block确实有许多优势存在,这里将一些简单用法总结如下:一、如何声明一个block变量我们通过^符号来声明block类型,形式如下:void (^myBlock)();其中第一个void是返回值,可以是任意类型,中间括号中^后面的是这个block变量的名字,我把它命名为myBlock,最后一个括

2015-11-18 17:23:45 690

原创 关于OC中引用计数问题

1:被release之后的引用计数 // class1 仅仅是一个自定义类 没有任何方法和属性 class1 * c1 = [[class1 alloc]init]; NSLog(@"c1的retainCount = %lu",(unsigned long)[c1 retainCount]); //输出结果为 1 当一个对象的引用计数为1的时候,再被release

2015-11-18 17:22:11 906

原创 ARC如何获取retainCount

You can use CFGetRetainCount with Objective-C objects, even under ARC:NSLog(@"Retain count is %ld", CFGetRetainCount((__bridge CFTypeRef)myObject));

2015-11-18 12:13:26 514

转载 ARC下OC对象和CF对象之间的桥接(bridge)

在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics、Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环境下编译器不会自动管理CF对象的内存,所以当我们创建了一个CF对象以后就需要我们使用CFRelease将其手动释放,那么CF和OC相互转化的时候该如何管理内存呢?答案就是我们在需要时可以使用__bri

2015-11-18 12:12:23 201

转载 instancetype、id、NSObject的区别

1、instancetype只能用于方法的返回类型,而id用处和NSObject *类似。2、instancetype会告诉编译器当前的类型,这点和NSObject *类似,但id对于编译器却是无类型的,调用任何方法不会给出错误提示。3、对于init方法,id和instancetype是没有区别的。因为编译器会把id优化成instancetype。当明确返回的类型就是当前Class

2015-07-26 18:53:46 280

转载 WWDC总结:开发者需要知道的iOS 9 SDK新特性

编者按:WWDC 2015苹果开发者大会是移动开发者一年一度的盛会,InfoQ中文站除了第一时间整理Keynote内容分享给大家之外,还邀请了资深的一线开发者分享他们的收获。本文为王巍(@onevcat)对WWDC上透露的iOS 9 SDK新特性的总结,分享给广大的iOS开发者。年年岁岁花相似,岁岁年年人不同。今年的 WWDC 一如既往的热闹,得益于 Apple 的随机抽选机制

2015-07-14 16:19:53 555

转载 MediaPlayer 和 AVPlayer

avPlayer是比较底层的avFoundation的API,底层的API都是很多功能和参数要自己做,定制起来方便,但是一开始使用时,很难用,自己搞很多代码。尤其是要自己写UI。因为底层的API,所以扩展性很好,比如AVQueuePlayer就是一个无缝的队列播放器,能自动播放多个文件来源。  还有就是AVFoundation库允许你自己做定制,比如转换和编解码等。MPMo

2015-07-14 16:16:27 1546

原创 闹钟APP自动通知

闹钟APP 是如何在关闭APP得情况下,还可以在设置时间开启得情况下,自己启动。使用UILocalNotification,本地通知。

2015-06-25 17:39:08 304

转载 __NSCFString containsString:]: unrecognized selector sent to instance 的解决方案

代码:[objc] view plaincopyprint?NSString *urlString = [[request URL] absoluteString];  if([urlString containsString:@"mark"])  {     // do something  }  这段代码,没有

2015-06-23 11:20:24 542

转载 理解iOS7的Multipeer Connectivity框架

http://www.oschina.net/translate/intro-multipeer-connectivity-framework-ios-programming?cmp&p=2#

2015-06-18 11:21:25 60

转载 IOS零碎技术整理(3)-获取wifi列表

1.   该功能实现基于MobileApple80211框架来进行开发,而目前该框架成为了私有框架,其中的API均为私有API。如果使用这些API可能导致应用不能上app store或者ios版本升级过程中,可能对私有api不兼容,导致程序莫名的挂掉或数据获取失败2.   终端必须越狱,且必须把程序部署到终端的/Applications目录下取得超级用户权限才能获得wifi的访

2015-06-18 10:17:29 141

原创 button的几个不太关注属性showsTouchWhenHighlighted

/*     * 默认情况下,当按钮高亮的情况下,图像的颜色会被画深一点,如果这下面的这个属性设置为no,     * 那么可以去掉这个功能    */    button1.adjustsImageWhenHighlighted = NO;    /*跟上面的情况一样,默认情况下,当按钮禁用的时候,图像会被画得深一点,设置NO可以取消设置*/    button1

2015-06-11 12:18:06 788

转载 移动应用开发技术选择六要素:慎重选平台

作者从平台环境、操作系统、设备能力、云端、应用类型、跨平台开发六大方面分享了其在移动应用开发中的技术选择经验。这 是一个新的时代、新的机会。自从2007 年1月乔布斯揭开iPhone的面纱以来,移动时代的大潮滚滚向前,已经走过近5个年头。这个产业正在从新生走向成熟阶段。在这样的产业时代背景下,各种 不同的系统平台,不同的技术路线,自然是层出不穷、迅猛发展。对于每一个投身于移动行业的软件开发

2015-06-08 16:46:35 397

转载 微信关注即可使用Wi-Fi是怎样实现的?

无线路由器一般通过手机WIFI的mac地址来选择放行/禁止其联网的行为。无线路由器一般有类似管理接口,使得像RADIUS服务器可以通过该接口控制无线路由器对终端MAC地址的过滤行为。AD:干货来了,不要等!WOT2015 北京站演讲PPT开放下载!不请自来,本人之前接私活,做过类似项目的TPM,在本人所接手的项目中,用户的体验其实没有之前诸位说的那么差,至少

2015-06-03 14:07:44 480

转载 GCD使用经验与技巧浅谈

GCD(Grand Central Dispatch)可以说是Mac、iOS开发中的一大“利器”,本文就总结一些有关使用GCD的经验与技巧。dispatch_once_t必须是全局或static变量这一条算是“老生常谈”了,但我认为还是有必要强调一次,毕竟非全局或非static的dispatch_once_t变量在使用时会导致非常不好排查的bug,正确的如下:

2015-05-21 14:44:17 239

转载 摇一摇 周边 与 ibeacon

“周边”即将入驻微信公众平台“周边”(zb.weixin.qq.com)平台一直以独立页面的方式存在,之前并未与微信公众平台(mp.weixin.qq.com)合并,对外宣称还尚处于公测阶段。最近,微信表示“周边”即将正式在公众平台上线,也将开发更多的设备ID供商户和开发者使用。微信组建周边团队,并为iBeacon在摇一摇中开辟专门通道,明显是看中了iBeacon在线下宣传和连接O

2015-05-20 14:49:42 1232

转载 【iOS】如何判断文本文件的字符编码格式

总体思路:遍历所有的字符编码,能正确读取输出转换的就是文本文件的编码格式。代码如下:[objc] view plaincopy//  //  main.m  //  检测文本字符编码格式的小技巧  //  //  Created by 杜子兮 (duzixi) on 14-6-21.  //  

2015-05-19 14:12:11 1781

转载 const int *p和int * const p的区别(常量指针与指向常量的指针)

对于指针和常量,有以下三种形式都是正确的:const char * myPtr = &char_A;//指向常量的指针char * const myPtr = &char_A;//常量的指针const char * const myPtr = &char_A;//指向常量的常量指针下面依次对这三种类型进行介绍。因为*操作符是左操作符,左操作符的优先级是从右到左,对于

2015-05-13 17:46:58 388

转载 枚举方法

都有哪些枚举方法?总体来说,我们有4种可以使用的枚举方法 (参考 Mike Ash 的 周五常见问题 2010-04-09: Objective-C 的枚举方法对比)。objectAtIndex: enumeration使用一个 for 循环,递增循环变量,然后用 [myArray objectAtIndex:index] 来访问元素。这是最基本的枚举形式。

2015-05-13 14:02:50 182

原创 URLCacher拦截url在ios7下播放视频崩溃

URLCacher IOS7 IOS8 兼容问题实现了一个uiwebview加载html后 拦截图片加载url改变默认图片的功能。自定义urlcacher类,在appdelegate中初始化全局urlcacher并设置setcacher。但是播放视频时程序崩溃。暂时解决办法判断播放视频时通过设置setcacher:nil来控制不适用缓存。

2015-05-12 17:44:20 196

转载 typeof与block

Block两点注意:1.block 的循环引用(retain cycle)2.去除block产生的告警时,需注意问题。非ARC:在Block中访问自身的属性,会retain自身造成内存泄漏,解决这种循环引用问题。就是在变量前面加个__block。ARC:不是简单的在变量前面加个__weak,这时还会告警,说这是一个WEAK变量,就马上会被release。因此还未到执

2015-05-12 16:34:49 531

空空如也

空空如也

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

TA关注的人

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