- 博客(19)
- 资源 (2)
- 收藏
- 关注
原创 将自己的开源项目提交到CocoaPods
制作第一个Pod时百度了好多,也在官网上看了很久,踩了很多坑才弄好。这里只记录一些关键步骤用于以后查阅(因为教程太多了)。创建仓库在 GitHub 上创建仓库的时候添加一个MIT License。创建 podspec将自己的仓库克隆岛本地后要创建 podspec 文件,以DLKeyboardManager 为例,命令为 :cd DLKeyboardManager
2018-01-14 15:52:55
339
原创 Swift:KeyPath
Swift 中可以使用 KeyPath 来获取属性值,语法为\Type.property.property.....。官方给出的示例:class Animal: NSObject { @objc var name: String init(name: String) { self.name = name }}let llama = Animal(name: "
2017-11-29 14:20:56
2250
原创 iOS 字符串路径相关Api
截取文件路径相关的 Api // 数据库路径 NSString *url = @"/Users/Dalang/Library/Developer/CoreSimulator/Devices/62D1B0C1-310F-4934-81C7-433F03EBC907/data/Containers/Data/Application/A7802BF0-67C9-46BC-9E26-943A3
2017-09-30 13:44:13
498
原创 iOS 正则表达式的使用方式
在 iOS 开发中,有三种常用的正则表达式运用方式,为别为:NSPredicate、NSRegularExpression 和 字符串查找。三种方式各有优劣,可以通过不同需求选择不同的使用方式。以邮箱校验为例:1.NSPredicate(谓词)谓词一般用于校验特定字符串的格式是否正确,使用方法很灵活。- (BOOL)isEmailAddress:(NSString *)string{ NS
2017-01-03 16:56:28
409
原创 iOS 播放系统音效
播放系统音效需要使用 AudioToolBox.framework(一套基于 C 语言的框架),其本质是将短音频注册到系统的声音服务中来播放,其特点是简单,太底层,支持震动,但也有许多限制:音效持续时间不能超过30秒音频数据必须是PCM或IMA4(IMA/ADPCM)格式音频文件必须打包成.caf、.aif或.wav格式播放系统音效播放系统音效的只需要调用这个方法:void AudioSer
2016-12-28 11:22:08
1621
原创 Swift: API 可用性检查
Swift 提供了 @available、#available 这两个 Attribute 用于函数的可用版本定义和检查。@available用于声明一个函数的使用平台和适用版本,在 @available条件后可以包含一些平台(iOS、OSX或watchOS)和版本@available(iOS 9.0, *) // 或者 @available(iOS 9, OSX 10.10, *)func sa
2016-12-23 14:06:20
541
原创 Swift:Errors thrown from here are not handled because the enclosing catch is not exhaustive
在学习 Swift 错误处理的时候,官方给出的 do-catch 例子如下:......let favoriteSnacks = [ "Alice": "Chips", "Bob": "Licorice", "Eve": "Pretzels",]func buyFavoriteSnack(person: String, vendingMachine: VendingMa
2016-12-21 16:37:37
3555
原创 iOS EXC_BAD_ACCESS 问题
iOS EXC_BAD_ACCESS 问题EXC_BAD_ACCESS 问题一直困扰着很多程序员,因为这样的问题不够直观,因为一旦出现 EXC_BAD_ACCESS,Xcode 马上跳到 main.m 文件中,即使设置了全局断点也很难定位到错误位置,需要花费很多时间才能解决。后来了解到早在 Xcode 7 中,Apple 就为我们增加了关于这样问题的调试选项 rUNTIME Sanitizer,使用
2016-09-18 14:54:01
533
原创 iOS 修改UITableView separator
separator styleUITableView 中的 separator 有三种类型:typedef NS_ENUM(NSInteger, UITableViewCellSeparatorStyle) { UITableViewCellSeparatorStyleNone, // 没有分割线 UITableViewCellSeparatorStyleSingleLine, //
2016-09-01 09:49:48
924
原创 iOS presentViewController:animated:completion:延迟问题
在 iOS 中,当使用- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion方法进行界面跳转的时候,有时候会出现延迟,这个延迟有时候会有好几秒的时间才会执行 comple
2016-07-31 11:02:15
4971
原创 UITableViewCell点击事件无法响应问题
一次手贱,浪费时间一个小时。 UITableView的didSelectRowAtIndexPath在点击cell的时候没有触发,无论怎样调试就是不行,后来查看tableview的属性,发现Selection设置为None,把它设置为SingleSelection就行了。如下图: Show Selection On Touch选项是为了设置选中cell的时候不显示背景默认的蓝色
2016-07-15 10:38:57
6634
翻译 iOS UISearchController Class Reference
一个UISearchController对象管理基于一个搜索栏交互的搜索结果展示。你使用搜索控制器与一个已经存在的视图控制器串联。当你拥有一个可以搜索内容的视图控制器的时候,集成UISearchController的搜索栏到你的视图控制器接口。当用户使用搜索栏交互的时候,搜索控制器会自动显示你指定搜索结果的新的视图控制器。 一个搜索控制器与两个你提供的视图控制器工作。第一个视图控制器展示你的可搜索
2016-06-07 21:08:55
448
原创 iOS 修改UISearchBar cancel 按钮
修改UISearchBar cancel 按钮最近做一个UISearchController的搜索功能,可是UISearchBar的取消按钮标题为“cancel”,想要修改为“取消”,参考了许多东西,大都是要遍历UISearchBar的子控件,找到类型为“UIButton”或子控件的父类是“UIButton”的子控件,通过UIButton的方法来修改它的标题或颜色。 例如:- (void)sear
2016-06-07 11:53:28
2021
转载 iOS 7系列译文:忘记NSURLConnection,拥抱NSURLSession吧!
说到 iOS 7 和 Mac OS X 10.9 Mavericks 的显著变化,其中一个就是Foundation框架中URL加载系统的优化。此时可能有人正沉浸在Apple的网络基础架构,我想在这里分享一下我对这些新APIs的看法,并展示这些新APIs如何改变我们构建应用程序的方式,以及这些它们在API设计理念演变中的意义。作为Core Foundation / CFNetwork 框架的APIs之
2016-05-26 17:35:54
388
翻译 iOS NSURLSessionConfiguration Reference
iOS NSURLSessionConfiguration Reference一个NSURLSessionConfiguration对象定义的行为和策略被用于使用NSURLSession上传和下载数据,创建一个配置对象始终是你必须采取的第一步。你可以使用这个对象去配置你想要使用的NSURLSession对象的超时时间、缓存策略、连接请求以及其它类型的信息。在你使用它初始化一个NSURLSession
2016-05-25 15:54:28
5576
转载 iOS BSD Socket TCP编程
本文转自标哥的技术博客,尊重原创。序言本篇文章为总结使用C语言的api来完成TCP通信的基本功能,如果您对Socket不了解,请先阅读上一篇理论知识:iOS Socket理论知识 如果文章中有任何您认为不正确的或者有疑问的,请联系笔者!1. TCP Socket编程TCP是面向连接的,安全可靠的传输层协议。TCP的程序基本框架设计图:注意:Socket通信一定有要服务端和客户端。1.1 TCP
2016-05-24 18:34:28
765
转载 iOS BSD Socket UDP编程
本文转自标哥的技术博客,尊重原创。序言本篇文章为总结使用C语言的api来完成UDP通信的基本功能,如果您对Socket不了解,请先阅读上一篇理论知识:Socket理论知识如果文章中有任何您认为不正确的或者有疑问的,请联系笔者!1. UDP Socket编程先讲一讲UDP编程,因为比TCP要简单多了。首先,我们需要明白UDP是用户数据报协议,英文名为User Datagram Protocol,它
2016-05-24 18:23:02
741
转载 iOS Socket理论知识
iOS Socket理论知识本文转自标哥的技术博客,尊重原创。序言网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 其中物理层、数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象; 传输层、会话层、表示层和应用层则被称作主机层,是用户所面向和关心的内容。http协议对应于应用层tcp/udp协议对应于传输层ip协议对应于网络层三者本质上没有可比性。
2016-05-24 17:31:57
495
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人