- 博客(36)
- 收藏
- 关注
转载 移除KVO的风险
为之前项目添加一个功能用到了一个开源库XMTextView,然后运行报错提示:显示没有注册一个叫font的观察者,所以闪退。但是我的UITextView没有添加观察者呀,怎么会删除呢?原来是由分类引起的,看下XMTextView中的分类:分类中交换了方法,那么所有的UITextView在释放时都要调用swizzleDealloc方法,而swizzleDealloc方法...
2019-03-07 20:24:00
187
转载 获取app下载链接
https://itunes.apple.com/cn/app/id1398635899?mt=8只需要更改其中的id就可以了转载于:https://www.cnblogs.com/QM80/p/10401756.html
2019-02-19 16:17:00
1417
转载 查找文件的路径
修改老代码时发现,发现这行代码NSString *filePath = [NSString documentsPath:@"CertificateType.plist"];NSArray *array = [NSArray arrayWithContentsOfFile:filePath];在真机没问题,而模拟器上报错:文件路径如下:这是因为在模拟器...
2019-01-21 16:48:00
234
转载 回忆基础:制作plist文件
-(void)creatPlistFileWithArr:(NSArray *)array{ //将字典保存到document文件->获取appdocument路径 NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainM...
2019-01-17 14:50:00
186
转载 Ping++中的AlipaySDK和AlicloudUTDID冲突解决方案
今天维护一个老项目发现阿里框架冲突 问题截图:解决方案:去阿里文档中心https://docs.open.alipay.com/54/104509 重新下载没有UTDID冲突的库下载SDK解压后:将解压出的库 替换 pods中的AliPaySDK转载于:https://www.cnblogs.com/QM...
2019-01-15 11:14:00
623
转载 CocoaPods常用操作命令
查看镜像:gem sources -l删除镜像gem sources --remove https://rubygems.org/添加镜像gem sources -a https://gems.ruby-china.com/一、升级cocopodssudo gem install -n /usr/local/bin cocoapods二、为...
2019-01-08 18:35:00
191
转载 自签名配置HTTPS
基于AFN3.01、将后台提供的.cer文件文件保存至本地2、在封装的网络请求工具类中为AFN的AFSecurityPolicy属性赋值-(AFSecurityPolicy *)customSecurityPolicy{ // 先导入证书,在这加证书,一般情况适用于单项认证 // 证书的路径 NSString *cerPath = [[N...
2018-01-30 19:34:00
141
转载 Instruments10 分析某个类中方法的执行时间
此步骤也可用户内存分配、内存泄漏的检测最新操作步骤参考:https://www.jianshu.com/p/e499ce63ed72转载于:https://www.cnblogs.com/QM80/p/7724062.html
2017-10-24 16:00:00
171
转载 iOS KVC/KVO
如果要修改对象的属性值1.一般情况下是直接利用对象属性的set方法来修改: Student *stu = [[Student alloc] init]; // set方法的两种书写格式 [stu setAge:10]; stu.age = 10;2.但是如果不知道对象类型呢?那么就可以运用KVC键值编码(Key Value Coding...
2014-04-06 15:25:00
151
转载 iOS 系统架构及常用框架
1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer)、媒体层(Media layer)、核心服务层(Core Services layer)、核心操作系统层(Core OS layer)如图:(1)触摸层:为应用程序开发提供了各种常用的框架并且大部分框架与...
2014-03-27 20:44:00
255
转载 iOS 层层推进实现代理模式
1.代理模式核心思想:A类委托B类做某件事,然后A类获取B类的执行的返回结果!举例:女孩想去买电影票,但是自己不亲自去而是委托男孩了解电影电影票信息,同时女孩获得男孩买票的结果,代码模拟实现:/*********************************** Gril.h *************************************/#import...
2014-03-27 18:42:00
130
转载 iOS Foundation框架 -4.NSDate类的简单用法
NSDate为日期时间类对象,简单操作:注意:直接NSLog输出NSDate对象,默认是以0时区为标准,因此会比北京时间少8小时1.将Date格式转换为自定义格式的字符串格式 // 自定义Date时间日期格式 // 创建日期时间对象 NSDate *date = [NSDate date]; // 借助日期时间对...
2014-03-22 14:19:00
103
转载 iOS Foundation框架 -3.利用NSNumber和NSValue将非OC对象类型数据存放到集合
1.Foundation框架中提供了很多的集合类如:NSArray,NSMutableArray,NSSet,NSMutableSet,NSDictionary,NSMutableDictionary但是这些类只能存放OC对象类型的数据2.如果要存放基本数据类型,必须先将基本暑假类型包装成对象类型然后再用集合类进行存储,OC中提供的包装类是NSNumber,NSValue。其中NSN...
2014-03-22 13:32:00
153
转载 iOS Foundation框架 -2.常用集合类简单总结
Foundation框架中常用的类有:NSString、NSArray、NSSet、NSDictionary以及它们对应的子类NSMutableString、NSMutableArray、NSMutableSet、NSMutableDictionary,父类统一为不可变而子类可变,还包括NSDate、NSObject可变和不可变的区别是对象内容的可变和不可变,子类既然是继承父类那...
2014-03-22 00:59:00
114
转载 iOS Foundation框架简介 -1.常用结构体的用法和输出
1.安装Xcode工具后会自带开发中常用的框架,存放的地址路径是:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/2.在iOS开发中所有框架中Foundation框架是最基础...
2014-03-21 02:22:00
141
转载 iOS ARC下循环引用的问题 -举例说明strong和weak的区别
strong:适用于OC对象,作用和非ARC中的retain作用相同,它修饰的成员变量为强指针类型weak:适用于OC对象,作用和非ARC中的assign作用相同,修饰的成员变量为弱指针类型assign:适用于非OC对象类型在OC对象循环引用的时候一端为strong类型,另一段为weak类型示例代码如下:/****************************** ...
2014-03-14 02:15:00
114
转载 iOS ARC基本原理
一、ARC基本简介ARC:Automatic Reference Counting 自动引用完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。开发者不再需要担心内存管理,因为编译器已经处理了一切ARC是自iOS 5之后增加的新特性:ARC 是编译器特性,而不是 iOS 运行时特性,它也不是类似于其它语...
2014-03-13 16:35:00
192
转载 iOS 非ARC基本内存管理系列总结6 -设计微博模型
设计简单的微博模型:用User类和Status类来模拟实现在非ARC机制下有两种方式,两者没有太大的区别之所以写了两种只是为了方便学习和对比两种写法! 第一种:没有使用atuorelease和自动释放池代码容易理解,但是开发中一般不这么写:/****************************** User.h文件 *************************...
2014-03-13 12:44:00
95
转载 iOS 非ARC基本内存管理系列 5-autorelease方法使用总结
autorelase:可以将对象交给自动释放池中,释放池销毁的时候对里面的对象做一次release操作代码如下 @autoreleasepool { Person *person = [[[Person alloc] init] autorelease]; }上面代码虽然正确,但是为了简化代码在开发中一般是提供一个类方法来专门创建对象,并...
2014-03-12 19:14:00
111
转载 iOS 非ARC基本内存管理系列 4-autorelease方法和@autoreleasepool
1.autorelease 基本用法对象执行autorelease方法时会将对象添加到自动释放池中当自动释放池销毁时自动释放池中所有对象作release操作对象执行autorelease方法后自身引用计数器不会改变,而且会返回对象本身2.autorelease 的优点autorelease实际上只是把对release的调用延迟了,对于每一次autorele...
2014-03-12 02:19:00
144
转载 iOS 非ARC基本内存管理系列 -手把手教你ARC——iOS/Mac开发ARC入门和使用(转)
手把手教你ARC——iOS/Mac开发ARC入门和使用Revolution of Objective-c本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流和讨论。请不要将本文的部分或全部内容用于商用,谢谢合作。欢迎转载本文,但是转载请注明本文出处:http://www.onevcat.com/2012/06/arc-han...
2014-03-11 23:07:00
163
转载 iOS 非ARC基本内存管理系列 3-循环retain和@class
1.@class使用场景:对于循环依赖关系来说,比方A类引用B类,同时B类也引用A类; 可以看出Person和Card互相引用,此时如果使用#import编译报错!因此当使用@class在两个类中相互声明,编译不会报错!用法:使用 @class 类名; 就可以引用一个类,说明一下它是一个类@class和#import的区别:#import方式...
2014-03-11 21:04:00
116
转载 iOS 非ARC基本内存管理系列 2-多对象内存管理(3) 利用@property来自动管理内存
iOS 基本内存管理-多对象内存管理(2)中可以看到涉及到对象的引用都要手动管理内存:每个对象都需要写如下代码// 1.对要传入的"新车"对象car和目前Person类对象所拥有的"旧车"_car进行判读- (void)setCar:(Car *)car{ if (_car != car ) { [_car release]; // 释放旧车 ...
2014-03-11 15:46:00
85
转载 iOS 非ARC基本内存管理系列 2-多对象内存管理(2)
/* 多对象内存管理: 以人拥有车为例涉及到@property底层set方法管理内存的实现 注意:人在换车的时候要进行当前传入的车和人所拥有的车进行判断 *//********************************* Person.h文件 *********************************/#import &...
2014-03-10 20:46:00
87
转载 iOS 非ARC基本内存管理系列 2-多对象内存管理(1)
单个对象的内存管理非常简单无非就是alloc对应release,retain对应release。但是如果涉及到很多对象,而且对象与对象有联系的时候该怎么去管理对象的内存呢。比如同样一本书有好3个人购买,那意味着3个人都在引用这本书。在内存中如图所示:那么如果Person对象引用Book对象的话就必须给Book对象的引用计数+1,如果不再引用Book对象就要把Book对象中的引...
2014-03-10 11:48:00
127
转载 iOS 非ARC基本内存管理系列 1-引用计数器
1.什么是内存管理移动设备的内存极其有限,每个app所能占用的内存是有限制的当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间。比如回收一些不需要使用的对象、变量等管理范围:任何继承了NSObject的对象需要去管理内存,但是对于对其他基本数据类型(int、char、float、double、struct、enum等)结构,枚举等不用去关...
2014-03-09 16:30:00
122
转载 iOS SEL的简单总结
@interface Person : NSObject+ (void)test1;- (void)test2;@end // 根据.h文件中定义的Person类和方法 执行完这行代码 在内存中如下 Person *person = [[Person alloc] init];SEL就是对方法的一种包装。包装的SEL类型数据它...
2014-03-08 01:11:00
76
转载 iOS 简单总结:description方法\NSLog函数
1.description方法是NSObject自带的方法,包括类方法和对象方法+ (NSString *)description; // 默认返回 类名- (NSString *)description; // 默认返回 <类名:内存地址>2.默认情况下利用NSLog和%@输出对象的时返回的就是类名和内存地址3.修改NSLog和%@的默认输出:重写类...
2014-03-07 19:21:00
145
转载 iOS 简单理解类的本质
1.类也是个对象类是一个对象是Class类型的对象简称类对象Class类型的定义// 一个任意的类型,表示一个Objective-C类typedef struct objc_class *Class;类名就代表着类对象,每个类只有一个类对象获取类对象 // 获取类对象两种方式person1 和 person2 Cl...
2014-03-07 13:46:00
185
转载 iOS 分类思想(2)
/******************* NSString+NumCount.h文件 ******************************/#import <Foundation/Foundation.h>@interface NSString (NumCount)// 给NSString类扩充一个类方法计算字符串中数字的个数+ (in...
2014-03-06 18:18:00
82
转载 NSInteger 与 NSUInteger 和 int与 NSInteger 区别(转)
转自:http://blog.youkuaiyun.com/duxinfeng2010/article/details/7606261先说说NSInteger 与 NSUInteger,在看书上代码是遇见NSInteger和NSUInteger,不知道什么时候用NSInteger,什么时候用NSUInteger,在网上搜了一下,NSUInteger是无符号的整型, NSInteger是有符号的整...
2014-03-06 18:03:00
227
转载 iOS 分类思想(1)
1.需求:如果对一个类在不更改代码的基础上要为它再扩充额外的方法可以使用继承和分类2.分类作用:可以在不修改原来类代码的基础上,给某一个类扩充一些对象方法或者类方法,因此一个类可以有多个分类实现:分类也是类因此也有声明和实现,分类一般以要实现的功能或者模块命名声明:@interface 类名(分类名称)@end实现:@implementation 类名(分类名称...
2014-03-06 14:14:00
87
转载 iOS 构造方法
构造方法:用于在对象创建出来的时候为对象的成员变量或者属性赋值1.构造方法就是初始化对象的方法,它属于对象方法。构造方法分为系统自带和自定义构造方法。 如何创建自定义构造方法:属于对象方法那么以-号开头返回值一般为id类型方法名一般以init开头2.实现方式(1)如果是系统自带的构造方法,需要重写父类中自带的构造方法 比如init(2)如果是自...
2014-03-05 03:05:00
100
转载 iOS 详细解释@property和@synthesize关键字
/** 注意:由@property声明的属性 在类方法中通过下划线是获取不到的 必须是通过 对象名.属性 才能获取到!~ @property和@synthesize关键字是针对成员变量以及get/set方法而言的 从Xcode4.4以后@property已经独揽了@synthesize的功能主要有三个作用: (1)生成了成员变量get/set方法的声明 ...
2014-03-02 05:20:00
153
转载 iOS 成员变量的作用范围
/* 成员变量的作用范围: @public:在任何地方都能直接访问对象的成员变量 @private:只能在当前类的对象方法中直接访问,如果子类要访问需要调用父类的get/set方法 @protected:可以在当前类及其子类对象方法中直接访问(系统默认下是用它来修饰的) @package:在同一个包下就可以直接访问,比如说在同一个框架注意: ...
2014-03-01 20:43:00
124
转载 iOS 多态的简单思想
/** * 多态:多种形态,是对于对象而言的,如果没有继承就没有多态 * * 在代码中体现:就是通过定义父类指针指向子类的对象 * * 好处:在函数或者方法的参数中如果传入的是父类指针,那么实现的时候可以传入父类或者子类对象 比如多个子类在完成同一个动作的时候,可以直接将父类指针作为参数传入,那么子类在实现的时候就可以将子类作为...
2014-02-26 18:39:00
89
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人