自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (2)
  • 收藏
  • 关注

原创 将自己的开源项目提交到CocoaPods

制作第一个Pod时百度了好多,也在官网上看了很久,踩了很多坑才弄好。这里只记录一些关键步骤用于以后查阅(因为教程太多了)。创建仓库在 GitHub 上创建仓库的时候添加一个MIT License。创建 podspec将自己的仓库克隆岛本地后要创建 podspec 文件,以DLKeyboardManager 为例,命令为 :cd DLKeyboardManager

2018-01-14 15:52:55 283

原创 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 2171

原创 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 457

原创 iOS 正则表达式的使用方式

在 iOS 开发中,有三种常用的正则表达式运用方式,为别为:NSPredicate、NSRegularExpression 和 字符串查找。三种方式各有优劣,可以通过不同需求选择不同的使用方式。以邮箱校验为例:1.NSPredicate(谓词)谓词一般用于校验特定字符串的格式是否正确,使用方法很灵活。- (BOOL)isEmailAddress:(NSString *)string{ NS

2017-01-03 16:56:28 348

原创 iOS 播放系统音效

播放系统音效需要使用 AudioToolBox.framework(一套基于 C 语言的框架),其本质是将短音频注册到系统的声音服务中来播放,其特点是简单,太底层,支持震动,但也有许多限制:音效持续时间不能超过30秒音频数据必须是PCM或IMA4(IMA/ADPCM)格式音频文件必须打包成.caf、.aif或.wav格式播放系统音效播放系统音效的只需要调用这个方法:void AudioSer

2016-12-28 11:22:08 1506

原创 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 479

原创 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 3387

原创 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 491

原创 iOS 3D Touch

3D Touch

2016-09-11 13:15:17 733

原创 iOS 修改UITableView separator

separator styleUITableView 中的 separator 有三种类型:typedef NS_ENUM(NSInteger, UITableViewCellSeparatorStyle) { UITableViewCellSeparatorStyleNone, // 没有分割线 UITableViewCellSeparatorStyleSingleLine, //

2016-09-01 09:49:48 852

原创 iOS presentViewController:animated:completion:延迟问题

在 iOS 中,当使用- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion方法进行界面跳转的时候,有时候会出现延迟,这个延迟有时候会有好几秒的时间才会执行 comple

2016-07-31 11:02:15 4900

原创 UITableViewCell点击事件无法响应问题

一次手贱,浪费时间一个小时。   UITableView的didSelectRowAtIndexPath在点击cell的时候没有触发,无论怎样调试就是不行,后来查看tableview的属性,发现Selection设置为None,把它设置为SingleSelection就行了。如下图: Show Selection On Touch选项是为了设置选中cell的时候不显示背景默认的蓝色

2016-07-15 10:38:57 6548 1

翻译 iOS UISearchController Class Reference

一个UISearchController对象管理基于一个搜索栏交互的搜索结果展示。你使用搜索控制器与一个已经存在的视图控制器串联。当你拥有一个可以搜索内容的视图控制器的时候,集成UISearchController的搜索栏到你的视图控制器接口。当用户使用搜索栏交互的时候,搜索控制器会自动显示你指定搜索结果的新的视图控制器。 一个搜索控制器与两个你提供的视图控制器工作。第一个视图控制器展示你的可搜索

2016-06-07 21:08:55 412

原创 iOS 修改UISearchBar cancel 按钮

修改UISearchBar cancel 按钮最近做一个UISearchController的搜索功能,可是UISearchBar的取消按钮标题为“cancel”,想要修改为“取消”,参考了许多东西,大都是要遍历UISearchBar的子控件,找到类型为“UIButton”或子控件的父类是“UIButton”的子控件,通过UIButton的方法来修改它的标题或颜色。 例如:- (void)sear

2016-06-07 11:53:28 1955

转载 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 354

翻译 iOS NSURLSessionConfiguration Reference

iOS NSURLSessionConfiguration Reference一个NSURLSessionConfiguration对象定义的行为和策略被用于使用NSURLSession上传和下载数据,创建一个配置对象始终是你必须采取的第一步。你可以使用这个对象去配置你想要使用的NSURLSession对象的超时时间、缓存策略、连接请求以及其它类型的信息。在你使用它初始化一个NSURLSession

2016-05-25 15:54:28 5508

转载 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 713

转载 iOS BSD Socket UDP编程

本文转自标哥的技术博客,尊重原创。序言本篇文章为总结使用C语言的api来完成UDP通信的基本功能,如果您对Socket不了解,请先阅读上一篇理论知识:Socket理论知识如果文章中有任何您认为不正确的或者有疑问的,请联系笔者!1. UDP Socket编程先讲一讲UDP编程,因为比TCP要简单多了。首先,我们需要明白UDP是用户数据报协议,英文名为User Datagram Protocol,它

2016-05-24 18:23:02 699

转载 iOS Socket理论知识

iOS Socket理论知识本文转自标哥的技术博客,尊重原创。序言网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 其中物理层、数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象; 传输层、会话层、表示层和应用层则被称作主机层,是用户所面向和关心的内容。http协议对应于应用层tcp/udp协议对应于传输层ip协议对应于网络层三者本质上没有可比性。

2016-05-24 17:31:57 432

禅与Objective-C

Objective-C编程艺术,编码规范

2015-08-12

Obj-C高级编程

Objectice-C高级编程,主要讲解内存管理,Block,GCD

2015-08-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除