- 博客(49)
- 收藏
- 关注
原创 iOS runtime 运行时( 三 深谈)
OK! 让我们接着上一篇来 谈谈 runTime 上一篇 聊的是: 在不知道一个对象有什么属性的情况下, 获取对象的所有属性,然后可以改变属性的值, 今天我们谈谈 怎么通过Category(类别)+runtime 给一个类 添加一个新的属性,一般情况下,我们通常背的概念都是,Category(类别)只可以添加方法,不可以添加属性,但是有了runTime之后,一切就不一样了 上代码喽·····引入
2016-03-15 17:06:29
546
原创 iOS runtime 运行时( 二 深谈)
Attention!逆天的来了 我们在编程过程中,如果使用到了runtime(运行时),我们几乎都是想动态的改变这个类的信息,包括方法,属性,balabala的,并且获得这个类的一些信息,等等,下面我们就来看看怎么通过runtime提供的方法,来达到这些目的 1). 获取 这个类的所有属性 .h 文件@interface RTObj :NSObject@property(nonatomic,
2016-03-12 18:00:20
564
原创 iOS runtime 运行时( - 俗谈)
忙里偷个闲,来稍微写点谈到运行时,相对应的就有编译时;1).运行时– 直到程序运行时才去确定一个对象的具体信息,并且可以改变这个类的具体信息,包括它的方法,变量等等;2).编译时– 是在程序运行之前,编译的时候,就确定了这个对象的具体信息,并且不可改变先来说说,运行时,确定一个对象的具体信息的例子NSString *str = [NSArray arrayWithObject:@"3"];NSLo
2016-03-12 17:46:50
474
原创 Xcode(7.2) 使用技巧(3)
1、让XCode反馈足够多的信息在Edit–>Scheme里面 找到Arguments ,在Environment Variables这里添加把下面2个值设置成YESNSAutoreleaseFreedObjectCheckEnabledNSDebugEnabled这种方法非常好用,建议在建立一个工程的时候,加入此设置2. 让 NSLog
2016-03-09 19:04:45
453
原创 Xcode(7.2) 使用技巧(2)
1.开启 Enable NSZombie Objects(开启僵尸对象) 模式Enable NSZombie Objects可能是整个Xcode开发环境中最有用的调试技巧。这个技巧非常非常容易追踪到重复释放内存 或者 使用已经释放的内存地址 的问题。该技巧会以非常简洁的方式打印指出重复释放的类和该类的内存地址。怎么开启僵尸对象呢?首先打开“Edit Scheme”,然后选择Diag
2016-03-09 18:22:35
652
原创 Xcode(7.2) 使用技巧(1)
Xcode 中 内置GDB(UNIX及UNIX-like下的调试工具),我们可以在命令行中使用GDB 命令来调试我们的程序。下面将介绍一些常用的命令以及调试技巧。1.po 命令:为 print object 的缩写,显示对象的文本描述(显示从对象的 description 消息获得的字符串信息)。如上图所示,我使用 po 命令显示一个 NSDictionary
2016-03-09 17:38:08
705
转载 https+ssl详解
这是转载别人的写的很好,(转:崔永秀)把这几天学习到的关于ssl和https协议的内容在这里分享一下,适合一些像我一样的网络协议初学者。ssl协议的起源和历史我就不再多说了,就是那个Netscape 网景公司开发的,它的作用主要是提供了一种安全传输方式,我们知道网上有很多的时候需要我们去输入用户名和密码,那么假设我们自己的电脑防病毒还可以,但是用户名和密码肯定还是要通过互联网来传到服务
2016-03-03 21:46:25
1036
原创 详解 CALayer 和 UIView 的区别和联系
1.首先UIView可以响应事件,Layer不可以.UIKit使用UIResponder作为响应对象,来响应系统传递过来的事件并进行处理。UIApplication、UIViewController、UIView、和所有从UIView派生出来的UIKit类(包括UIWindow)都直接或间接地继承自UIResponder类。在 UIResponder中定义了处理各种
2016-03-03 00:54:40
414
原创 CACurrentMediaTime , CFAbsoluteTimeGetCurrent, NSDate 区别
NSDate 属于Foundation CFAbsoluteTimeGetCurrent() 属于 CoreFoundatioCACurrentMediaTime() 属于 QuartzCore本质区别: NSDate 或 CFAbsoluteTimeGetCurrent()返回的时钟时间将会会网络时间同步,从时钟偏移量的角度,mach_
2016-03-01 00:19:57
1894
转载 iOSAPP 本地化
最近要对一款游戏进行多语言本地化,在网上找了一些方案,加上自己的一点点想法整理出一套方案和大家分享!多语言在应用程序中一般有两种做法:一、程序中提供给用户自己选择的机会;二、根据当前用户当前移动设备的语言自动将我们的app切换对应语言。第一种做法比较简单完全靠自己的发挥了,这里主要讲第二种做法,主要分一下几点:1.本地化应用程序名称2.本地化字符串3.本地化图片4.
2016-02-17 23:49:22
620
原创 此证书的签发者无效
m1,按照你那个链接下载,https://developer.apple.com/certificationauthority/AppleWWDRCA.cer,并安装。2, 在“钥匙串”里选择“登录”,然后点选“证书”,在这个界面,选择工具栏的“显示” -> “显示过期证书”,这时候你会发现一个过期的“WWDR Certificate”(Apple Worldwide Develo
2016-02-17 00:56:06
513
转载 分享你最喜欢的技巧和提示(Xcode,Objective-C,Swift,C...等等)
笔者分享总结如下(本篇会不定期进行更新) :Objective-C1.让Xcode的控制台支持LLDB类型的打印这有什么用?怎么说尼,笔者认为这个还是比较有用滴,为什么有用尼?因为在Xcode断点调试的时候, 在控制台输入 po self.view.frame 或者 po id 类型的时候就死翘翘了。不信? 看如下图 :进入正题打
2016-01-04 10:12:12
585
原创 OC 与JS(WebView)交互
在WebView 上 做用户交互操作时(点击WebView),可以在如下的方法里截取Url,必须保证是这个交互操作所对应的唯一的 URl- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationT
2015-12-31 10:38:00
565
原创 什么时候使用回调函数和使用回调的好处
什么时候使用回调函数?假设有A、B两个类。(1)A类有多种形态,要在B类中实现回调函数。如假设A类是网络请求开源类ASIHttpRequest,它可能请求成功,也可能请求失败。这个时候,B类就要针对以上两个情况,作不同的处理。(2)A类的形态由B类决定时,要在B类中实现回调函数。如UITableView类就会提供很多回调函数(iOS专业术语称“委托”方法)(3)
2015-12-31 10:02:31
20827
1
原创 浅析回调函数
回调函数,本质上也是个函数(搁置函数和方法的争议,就当这二者是一回事)。由"声明"、"实现"、"调用"三部分组成。再加一部分就变成了回调函数回调特征:--- 方法的实现不在本类,但是调用在本类上一个例子:A.h 文件//声明回调函数:给指定的员工发放工资-(void)paySalaryForStaff:(int)staffId withMoney:(void(^)(
2015-12-31 09:58:16
859
原创 iOS 上传头像处理
上传头像处理图片 对新手iOS开发者一直是比较麻烦和模棱两可的事情,这里我给大家提供一种方法首先从相册里选择图片,允许编辑 photoImage = [infoobjectForKey:UIImagePickerControllerEditedImage];拿到编辑后的图片,然后根据编辑后的图片,1.生成一个包括图片所有内容的 正方形图片,原图是长方形的话,长方形
2015-12-27 14:17:05
621
原创 iOS RSA 加密
第一步,制作自签名的证书1.最简单快捷的方法,打开Terminal,使用openssl(Mac OS X自带)生成私钥和自签名的x509证书。openssl req -x509 -out public_key.der -outform der -new -newkey rsa:1024 -keyout private_key.pem -days 3650按照命令行的提示输入内容就行了。
2015-12-24 10:02:00
688
原创 Swift String 扩展
extension String{ //分割字符 func split(s:String)->String[]{ if s.isEmpty{ var x=String[]() for y in self{ x.append(String(y)) }
2015-11-30 17:56:44
603
原创 NSCopying NSCoding
NSCopying 协议有一个 方法- (id)copyWithZone:(NSZone *)zone{}代表复制一块本身的内存区域,如果要复制本身的属性等别的不属于内存的东西,需要重写这个方法,另外做操作NSCoding 用于把一个NSObject 和它的属性NSString、NSNumber 等序列化,使之可以一起存入本地,并且从本地读取
2015-11-28 13:09:58
586
原创 UITableViewCell、cell 复用机制
每一个Cell都有一个标示符,超出tableview frame的cell会进入复用队列,每次显示新的cell的时候先根据标示符去复用队列里面找有没有可以复用的,有的话拿出来用,没有就新创建// 代码示例-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIn
2015-11-28 12:53:00
530
转载 2015年最新苹果开发者账号注册流程详解
http://www.cnblogs.com/xilinch/p/4037164.html苹果公司开发者账号注册流程详解 这段时间在给朋友申请苹果账号,从个人开发者账号、团体账号到公司账号,申请了个遍。这里对申请流程做一下介绍,方便其他朋友,少走弯路,账号早日申请通过。 1.首先介绍下个人开发者账号、团体账号、公司账号之间的区别: 用
2015-11-02 21:31:10
805
翻译 Xcode 7遇到 App Transport Security has blocked a cleartext HTTP 错误
今天用Xcode 7 创建新项目用到 URL 发送请求时,报下面的错: “App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app’s Info.pl
2015-10-31 21:49:00
652
转载 XMPP
http://www.cnblogs.com/cokecoffe/archive/2012/08/22/2651645.htmlIOS XMPP的实践 近期一网友说一起研究XMPP协议,然后就花了点时间 研究了研究,其实也谈不上研究XMPP协议,就是简单的在IOS平台上使用而已。不过一切都得从使用开始,然后才能深入研究。 关于XMPP的介绍,我找了些资料
2015-09-23 17:24:46
491
原创 Get Post 区别
1. get是从服务器上获取数据,post是向服务器传送数据。2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。3. 对于get方式,服务器端用Request.QueryS
2015-09-23 14:52:33
409
转载 【iOS翻译】 Cocoa编码规范
原文地址:http://www.cnblogs.com/yangfaxian/p/4673894.html?sukey=b0cb5c5b9e501303cdfc92afc2415f8b2d1a3cbac6baecd52b8a67d68fa3f2695abd8f230b34ae248ad0c22a9de653ad简介:本文整理自Apple文档《Coding Guideline
2015-09-10 14:35:33
664
转载 iOS进阶面试题
OneV‘s Den在博客里出了10道iOS面试题,用他的话是:"列出了十个应聘Leader级别的高级Cocoa/CocoaTouch开发工程师所应该掌握和理解的技术" 。 在这里給一份我的答案。 1. 你使用过Objective-C的运行时编程(Runtime Programming)么?如果使用过,你用它做了什么?你还能记得你所使用的相关的头文件或者某些方法的名称吗? Ob
2015-09-10 12:49:39
339
转载 iOS面试题合集(77道)【有答案】 | IT笔试面试题库
1.#import和#include的区别 @class?@class一般用于头文件中需要声明该类的某个实例变量的时候用到,在m文 件中还是需要使用#import而#import比起#include的好处就是不会引起交叉编译2. readwrite,readonly,assign,retain,copy,nonatomic 属性的作用@property是 一个属性访问声明,扩号内支
2015-09-10 12:48:43
909
转载 史上最全的iOS面试题及答案
多线程、特别是NSOperation 和 GCD 的内部原理。运行时机制的原理和运用场景。SDWebImage的原理。实现机制。如何解决TableView卡的问题。block和代理的,通知的区别。block的用法需要注意些什么。strong,weak,retain,assign,copy nomatic 等的区别。设计模式,mvc,单利,工厂,代理等的应用场
2015-09-10 11:59:08
1046
转载 深入理解RunLoop
RunLoop 是 iOS 和 OS X 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。目录RunLoop 的概念RunLoop 与线程的关系RunLoop 对
2015-09-09 09:56:32
333
转载 APP如何设计才能适配iPhone6/Plus和iPhone5?
APP如何设计才能适配iPhone6/Plus和iPhone5?2015-06-02 14:17:55来源:知乎作者:pigtwo随着苹果发布两种新尺寸的大屏iPhone 6,iOS平台尺寸适配问题终于还是来了,移动设计全面进入“杂屏”时代。看看下面三款iPhone尺寸和分辨率数据就知道屏幕有多杂了。移动app开发中多种设备尺寸适配问题,过去只属于Android阵营
2015-09-09 09:50:46
1364
原创 HTML URL 编码
http://www.w3school.com.cn/tags/html_ref_urlencode.htmlURL 编码 - 从 %00 到 %8fASCII ValueURL-encodeASCII ValueURL-encodeASCII ValueURL-encodeæ%000%30`%60 %
2015-08-29 12:37:06
22404
转载 AFNetworking、MKNetworkKit和ASIHTTPRequest对比
之前一直在使用ASIHTTPRequest作为网络库,但是由于其停止更新,iOS7上可能出现更多的问题,于是决定更换网络库。目前比较流行的网络库主要有AFNetworking和MKNetworkKit,经过一番google后,得出这三个库之间的比较如下: AFNetworkingMKNetworkKitASIHTTPRequest
2015-07-29 10:43:21
333
转载 在iOS8系统下,UITabbar上的item自定义背景色和图片问题
在iOS8系统下,UITabbar上的item自定义背景色和图片,初始设置了红色没效果系统默认颜色-蓝色解决方法://选择的图片 UITabBar *tabBar = self.tabBar; UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0];
2015-07-28 11:18:34
459
原创 allowInvalidCertificates
allowInvalidCertificates//发送请求 AFSecurityPolicy *securityPolicy = [AFSecurityPolicydefaultPolicy]; securityPolicy.allowInvalidCertificates =YES; operation.
2015-07-27 16:42:18
1533
原创 旋转,移动,frame的混用,
UIRotationGestureRecognizer *rotationRecognizer = [[UIRotationGestureRecognizeralloc] initWithTarget:selfaction:@selector(rotate:)]; [rotationRecognizersetDelegate:self]; [self.view
2015-07-27 15:29:50
454
转载 iOS 使用手势UIGestureRecognizer对图像进行缩放、移动、旋转操作
iOS提供了拍击、旋转、滑动、挤捏等丰富的手势,因此对图像的操作就显得非常友好、简单。下面代码展示了使用UIGestureRecognizer对图像进行缩放、移动、旋转操作使用方法。 在使用代码之前,首先建立一个UIView,并在该视图中增加一个UIImageView视图,用于展示图像。那么该UIView就类似图像画板一样,对图像的操作都基于此视图中进行。在视图中创
2015-07-27 11:03:55
662
转载 AFJSONRequestSerializer
AFJSONRequestSerializer 最近在做IOS的开发,网络请求采用了AFNetworking框架,由于服务器端是接收JSON的数据,新框架不太熟,网上搜了好久才解决,记录一下。 NSMutableDictionary *dict=[[NSMutableDictionary alloc]init]; [dict setObj
2015-07-21 11:08:40
2304
原创 ios8 横屏状态栏不显示解决方法
解决方法:在plist文件中将 View controller-based status bar appearance 设置为NO 在application:didFinishLaunchingWithOptions:中添加下面代码[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusB
2015-01-21 17:55:26
638
转载 UIView 和Calyer的区别
研究Core Animation已经有段时间了,关于Core Animation,网上没什么好的介绍。苹果网站上有篇专门的总结性介绍,但是似乎原理性的东西不多,看得人云山雾罩,感觉,写那篇东西的人,其实是假设读的人了解界面动画技术的原理的。今天有点别的事情要使用Linux,忘掉了ssh的密码,没办法重新设ssh,结果怎么也想不起来怎么设ssh远程登陆了,没办法又到网上查了一遍,太浪费时间了,痛感忘
2015-01-15 09:46:54
906
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人