- 博客(10)
- 资源 (11)
- 收藏
- 关注
原创 写高质量OC代码52建议总结:29.理解引用计数
c使用引用计数来管理内存,可加减。想让某个对象继续存活,就增加其引用计数,用完了就递减。引用计数为0时,表示没人继续使用该对象,就可以销毁了。 “垃圾回收机制”在MAC OS X 10.8之后废弃,在IOS上从未支持过“垃圾回收机制” Retain 递增保留计数 release 递减保留计数 autorelease 稍后清理“自动释放池”时,再递减保留计数
2017-03-29 14:43:02 612
原创 Swift3.0 -- 错误处理 try
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let jsonString = "{\"name\":\"zhang\"}"; let data = jsonS
2017-03-15 08:19:18 6261
原创 NSClassFromString 创建视图控制器
// // LYKMainViewController.m // MeiPaiPai2.0 // // Created by meipaipai on 17/3/7. // Copyright © 2017年 meipaipai. All rights reserved. // #import "LYKMainViewController.h" @interface LYKMainVi
2017-03-07 14:55:43 855
转载 IOS 开发中判断字符串是否为空字符的方法
- (BOOL) isBlankString:(NSString *)string { if (string == nil || string == NULL) { return YES; } if ([string isKindOfClass:[NSNull class]]) { return YES; } i
2017-03-07 09:35:54 673
原创 写高质量OC代码52建议总结:28.通过协议提供匿名对象
协议定义了一系列方法,遵从协议的对象应该实现它们。我们可以用协议把自己写的API隐藏自来,将返回的对象设计为遵从协议的id类型。想要隐藏的类名就不会出现在API中了。如果接口背后有多个不同的实现类,而你又不想指明具体使用哪个类,可以考虑用这个办法,因为有时候这些类可能会变。 @property (nonatomic, weak) iddelegate; 由于该属性是id,所以任何类的对象都
2017-03-03 14:31:41 883
原创 编写高质量OC代码52建议总结:27.使用“class-continuation 分类” 隐藏实现细节
类中经常会包含一些无需对外公布的方法及实例变量。OC的动态消息系统的工作方式决定了其不可能实现真正的私有。但是,我们还是应该尽量只把需要对外公布的那部分公开。 “class-continuation 分类” 和普通的分类不同,它必须定义在主类的实现文件里。这是唯一能声明实例变量的分类,此分类没有特定的实现文件,其中的方法都应该在类的主文件里实现。 公共接口可以定义实例变量。把他们定义在“c
2017-03-02 16:44:22 1238
原创 编写高质量OC代码52建议总结:26.不要在分类中设置属性
除了"class-continuation"分类之外,其他分类都无法向类中新增实例变量。因此,无法合成实现属性所需的实例变量。 例如:专门设计一个处理交友事物的类,其中所有的方法都与操作朋友列表有关。 #import "LYKPerson.h" @interface LYKPerson () @property (nonatomic, copy, readonly) NSString *
2017-03-01 16:15:02 845
转载 App断网提醒设计
断网是一种影响用户使用的不良状态,Harris Interactive为Tealeaf做的一份调查显示,23%的用户承认咒骂过自己的手机,11%冲自己手机大喊过,而且4%的用户在网络出问题时扔过手机。断网就属于这类问题之一。 断网的情况下,我们应该尽量采用合理的提醒方式,降低用户焦虑。 举一个反面例子: 断网后下拉刷新,清空了缓存内容 测试时用的iOS系统,版本为1.5.6。我是先打开
2017-03-01 14:43:14 1869
原创 Swift3.0 -- UIRefreshControl添加下拉刷新控件
首先,声明一个UIRefreshControl变量属性 /// 刷新控件 var refreshControl: UIRefreshControl? 设置刷新控件 //设置刷新控件 // 1>实例化控件 refreshControl = UIRefreshControl(); // 2>添加到视图 ta
2017-03-01 09:52:19 1949
原创 编写高质量OC代码52建议总结:25.总是为第三方类的分类名称加前缀
分类中的方法是直接添加在类里面的,他们就好比这个类中的固有方法。将分类方法加入类的方法列表中,如果类本身就由此方法,分类又实现了一次,那么分类中的方法会覆盖原来那一份实现代码。实际上可能会覆盖很多次,例如,某个分类中的方法覆盖了“主实现”中的相关方法,而另外一个分类中的方法有覆盖了这个分类中的方法。多次覆盖的结果以最后一个分类为准。程序运行时,由于执行结果和预期的不同,所以自己写的那些代码不会执行
2017-03-01 08:58:49 1327
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人