iOS
Bily猪
这个作者很懒,什么都没留下…
展开
-
UIImage加载图片选择imageNamed方法还是imageWithContentsOfFile?
Apple官方的文档为生成一个UIImage对象提供了两种方法:1. imageNamed,其参数为图片的名字;2. imageWithContentsOfFile,其参数也是图片文件的路径。那么两种有什么区别吗?肯定是有的。根据Apple的官方文档:imageNamed: 这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象如果它存在的话。如果缓转载 2014-07-24 14:17:51 · 976 阅读 · 0 评论 -
iOS 类别和扩展(Category和Extension)
分类(Category) 分类能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法。 此外,分类能够保证你的实现类和其他的文件区分开。 1 #import “UIViewController.h”2 @interface UIViewController(CustomView)3 -(void)extMethod;4 @end 使用分类为类添加方法(Add M转载 2016-09-12 10:31:37 · 568 阅读 · 0 评论 -
ios技能图谱
一. 编程语言。1.Object-C 2.C/C++ 3.JavaScript 4.Swift二. 操作系统。1.iOS 2.Mac OSX 3.tvOS 4.watchOS 5.Linux 常用命令三. 开发基础。1.UI控件 2.Storyboard & Xib 3.Core Data & Sqlite 4.Core Graphics 5.转载 2016-08-10 16:12:22 · 466 阅读 · 0 评论 -
iOS中block实现的底层探究
[0. Brief introduction of block]Block是iOS4.0+ 和Mac OS X 10.6+ 引进的对C语言的扩展,用来实现匿名函数的特性。用维基百科的话来说,Block是Apple Inc.为C、C++以及Objective-C添加的特性,使得这些语言可以用类lambda表达式的语法来创建闭包。用Apple文档的话来说,A block is an anonymo转载 2016-09-02 16:05:51 · 705 阅读 · 0 评论 -
(类簇)NSString,NSArray,NSNumber等类的继承问题
问题引入,我想给NSString类扩展一些新的方法。在Objective-C中可以有两种方法,一是继承,二是类别。本文先不讨论类别,我们用继承的方法试一下:[c] view plain copy print?@interface StringEx : NSString - (void)myFunc; @end @implementation StringEx - (void)myFu转载 2016-09-19 17:59:08 · 1286 阅读 · 0 评论 -
iOS中block实现的底层探究2
这是一篇技术分享,并且之前发表在酷壳上,http://coolshell.cn/articles/8309.html,现在发布到自己的博客上。下文是直接从酷客复制过来的,这里偷了个懒,没有再次对格式做很仔细的整理,只有稍微整理。汗。这里主要讨论的是C语言的扩展特性block。该特性是Apple为C、C++、Objective-C增加的扩展,让这些语言可以用类Lambda表达式的语法来创建闭包。前段转载 2016-09-02 16:53:36 · 589 阅读 · 0 评论 -
IOS开发中NSRunloop跟NSTimer的问题
在Windows时代,大家肯定对SendMessage,PostMessage,GetMessage有所了解,这些都是windows中的消息处理函数,那对应在ios中是什么呢,其实就是NSRunloop这个东西。在ios中,所有消息都会被添加到NSRunloop中,分为‘input source’跟'timer source'种,并在循环中检查是不是有事件需要发生,如果需要那么就调用相应的函数处理转载 2016-09-28 20:09:38 · 355 阅读 · 0 评论 -
iOS库 .a与.framework区别
一、什么是库?库是共享程序代码的方式,一般分为静态库和动态库。二、静态库与动态库的区别?静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。三、iOS里静态库形式?.a和.framework四、iOS里动态库形式?转载 2016-11-23 11:18:13 · 280 阅读 · 0 评论 -
JSPatch简介 – 动态更新iOS APP
1.用途是否有过这样的经历:新版本上线后发现有个严重的bug,可能会导致crash率激增,可能会使网络请求无法发出,这时能做的只是赶紧修复bug然后提交等待漫长的AppStore审核,再盼望用户快点升级,付出巨大的人力和时间成本,才能完成此次bug的修复。 使用JSPatch可以解决这样的问题,只需在项目中引入JSPatch,就可以在发现bug时下发JS脚本补丁,替换原生方法,无需更新APP即时修转载 2017-01-17 16:41:34 · 389 阅读 · 0 评论 -
IOS开发之协议和代理
【iOS开发技术分享】协议与代理【iOS开发技术分享】协议与代理一、理解协议与代理协议:协议是一个方法签名的列表,在其中可以定义若干个方法。根据配置,遵守该协议的类会去实现这个协议中规定的若干个方法。代理:代理是一个概念,很难用一个名词去定义(如我们可以说协议其实就是一个方法列表)。它更像是一种关系,我要做某一个事情,但我自己不想去做这件事,我委托其他人帮我去做这件事。这个时候,这位其他人就是我的转载 2016-09-11 11:25:50 · 361 阅读 · 0 评论 -
浅谈FMDB事务批量更新操作耗时
当谈到“事务”时,我想到了sqlite本身是支持事务操作的,FMDB作为sqlite的上层封装也对事务进行了支持,那么说了这么多给不了解“事务”这个词的同学解释一下吧:通常一次 sqlite3_exec 就是一次事务,假如你要对数据库中的Stutent表插入新数据,那么该事务的具体过程是:开始新事物->插入数据->提交事务,那么当我们要往该表内插入500条数据,如果按常规操作处理就要执行500次“开原创 2016-08-27 10:49:37 · 2712 阅读 · 0 评论 -
FMDB的一些特别使用
1.用途是否有过这样的经历:新版本上线后发现有个严重的bug,可能会导致crash率激增,可能会使网络请求无法发出,这时能做的只是赶紧修复bug然后提交等待漫长的AppStore审核,再盼望用户快点升级,付出巨大的人力和时间成本,才能完成此次bug的修复。 使用JSPatch可以解决这样的问题,只需在项目中引入JSPatch,就可以在发现bug时下发JS脚本补丁,替换原生方法,无需更新APP即时修原创 2016-08-11 15:36:34 · 1193 阅读 · 0 评论 -
从App Store上获取已经上架的App版本信息
一般App在设备上启动后都会有做版本检测以确认本版本是否是最新版本的App,以便提示用户更新到最新版本。当然可以在公司的的服务器做接口查询,这是一个比较笨的办法,但鉴于iOS App的上架App特性,我们希望检测到当前设备安装的版本与App Store上的版本比较,具体操作如下: 1. 如何从App Store上获取指定App的信息? 这里可以通过Ap转载 2014-07-27 19:08:10 · 1217 阅读 · 0 评论 -
Xcode中一个工程嵌入到另一个工程
设置被嵌入工程为主工程,要嵌入工程原创 2014-08-01 14:35:06 · 3881 阅读 · 0 评论 -
设置xcode里非arc模式
设置"Objective-C Automatic Reference Counting"选项为YES,不过Xcode自动转换工具会自动设置这个选项,这里只是说明一下如何手动设置原创 2014-07-29 15:25:48 · 606 阅读 · 0 评论 -
runtime 获取类的成员变量
首先,我们定义一个类@interface Person : NSObject{ CGFloat height;}@property (nonatomic, copy) NSString *name;@property (nonatomic, strong) NSNumber *age;@property (nonatomic, assign) int no;@en转载 2014-11-26 15:01:44 · 527 阅读 · 0 评论 -
Xcode 断点调试
lldb 常用命令 po(print-object)+ 对象p(print)+ 基本数据类型 int之类bt 打印最后一次调用堆栈expr 动态修改变量技巧一:运行时修改变量的值你以前怎么验证是不是某个变量的值导致整段程序不能正常工作?修改代码中的变量的值,然后cmd+r重新启动app?现在你不需要这么做了,只需要设置一个断点,当程序转载 2014-07-30 18:00:44 · 831 阅读 · 0 评论 -
Xcode里-ObjC, -all_load, -force_load
最近在做一个项目的时候,需要使用到一个第三方库,这个库的使用向导里面特别说明,在添加完该库后,需要在Xcode的Build Settings下Other Linker Flags里面加入-ObjC标志,这个标志以前没使用过,所以我就专门研究了一下它的作用。 之所以使用该标志,和Objective-C的一个重要特性:类别(category)有关。根据这里的解释,Unix的标准静态库实转载 2016-02-29 19:18:17 · 415 阅读 · 0 评论 -
HTTPS绕过证书
写一个NSURLRequest的类别,放到任何一个.m文件就行@implementation NSURLRequest (NSURLRequestWithIgnoreSSL)+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host{ return YES;}@end原创 2016-06-07 16:36:39 · 689 阅读 · 0 评论 -
从 NSURLConnection 到 NSURLSession
iOS 7 和 Mac OS X 10.9 Mavericks 中一个显著的变化就是对 Foundation URL 加载系统的彻底重构。现在已经有人在深入苹果的网络层基础架构的地方做研究了,所以我想是时候来分享一些对于我对于这些新的 API 的看法和心得了,新的 API 将如何影响我们编写程序,以及它们对于 API 设计理念的影响。NSURLConnection 作为 Core转载 2016-07-07 00:12:41 · 313 阅读 · 0 评论 -
iOS中block实现的底层探究
今天主要讨论的是C语言的扩展特性block。该特性是Apple为C、C++、Objective-C增加的扩展,让这些语言可以用类Lambda表达式的语法来创建闭包。1.从语法上看如何修改外部变量首先看如下代码:int i = 1024; void(^blk)(void) = ^{ i = 0; printf(“%d\n”, i); }; blk(); 会得到如下错误:main.m:14:29转载 2017-01-17 16:39:57 · 385 阅读 · 0 评论