做过后端(J2EE),11年转 iOS ,12年中~14年中创过业(跨界开火锅店..),对代码有洁癖,致力于写出优雅的代码,在多个公司负责过 iOS 架构,熟悉设计模式,热衷产品设计与交互,业余时间担任 CSDN iOS 版块版主
代码的等级:可编译、可运行、可测试、可读、可维护、可复用 前言 一个控件从外在特征来说,主要是封装这几点: 交互方式 显示样式 数据使用 对外在特征的...
Houston 的背景 Houston 在 GitHub 上的地址:https://github.com/nomad/Houston,作者又是Mattt Thompson,简直是惨无人道啊,又高产,又有质量 Houston 能让我们在本地、甚至终端很方便的调试远程通知。
仿网易云音乐的播放进度条,有三种状态:播放、暂停和拖动,只是实现了动画和主要的交互逻辑,其他细节(如暂停音乐的播放等)还需要自己完善: DKPlayerBar 是继承于UIControl...
转载请注明出处:http://blog.csdn.net/zhangao0086/article/details/45289475。
做开发到一定程度后就会面临“转职”,是转向更深的技术还是工程管理值得考虑啊。。 行业现状 虽然近几年有大量的开发者涌入移动端,社会上的各种培训机构也越来越多,但是优秀的 iOS 开发者...
此前我对创新的定义是:做出别人完全没想到的东西,要牛逼,要与众不同,借鉴过的东西都不能称之为创新。
对《Head First 设计模式》中的常用设计模式的整理,其实很多模式我们在开发中都有用到,但是在此之前没有一种理论基础支撑自己,有了这些知识后,更有利于做好程序的设计工作,以及遇到一些设计问题时知道如何取舍。
用iTunes Connect提供的TestFlight功能可以确保我们在设备上测试的版本和App Store上将要发行的版本是同一个。
转载请注明出处:http://blog.csdn.net/zhangao0086/article/details/43836789。
实体的模型定义: 实体的class定义: @objc(ImageEntity) class ImageEntity: NSManagedObject { @NSManaged...
通过Bridging-Header文件,Swift可以与Objective-C无缝调用,但是Swift与Objective-C有一个很大的不同点:Swift支持Optional类型。
在App中保持一个FMDatabaseQueue的实例,并在所有的线程中都只使用这一个实例。 [FMDatabaseQueue databaseQueueWithPath:path]; ...
对还没有支持Xcode 6.2的插件有效,Alcatraz 的新版已经支持。 进入到插件目录 ~/Library/Application Support/Developer/Shared/Xcode/Plugins 显示插件的包内容 编辑Info.
来自论坛的一个问题:[CoreData] returnsObjectsAsFaults是什么用的。
来自论坛的一个问题:[在线]一个obj-c语法的问题。 直接看一个例子 @interface TestCounter : NSObject - (TestCounter *)coun...
The use of volatile is poorly understood by many programmers.
我们每天都要打包给测试,每天都要改Build比较麻烦,幸运的是可以通过Shell脚本来省略这个过程。在Xcode工程里选择对应的Target,在Build Phases里点击“New Run Script Phases”: 在下面的窗口中写入类似于...
在iOS 8以前,如果想自定义一个UITableViewCell的滑动操作是一件比较麻烦的事情,系统只支持删除,如果我们想加上一个类似于“置顶”的操作需要处理不少逻辑,而进入iOS 8以后,系统提供了UITableViewRowAction以及新的d...
2014年的1月1号,直到用餐的客人全部走完,关完店回到家已经是凌晨了,想想以前在北京的时候,女友让我回家带点大葱,我买成了韭菜,后来居然开了一家餐饮店,还主做采购,变化真是挺大啊。
在iOS 8中,[UIScreen bounds] 、[UIScreen applicationFrame] 、Status bar、Keyboard这些frame都是根据设备真实方向来返回frame的,而在iOS 7中,不过是横屏还是竖屏,iOS总是返回竖屏的frame,如以下输出: iOS 7: 竖屏: UIScreen.
虽然在项目创建和团队组建的初期,我们就把公共约定以及一些规范定下来了,并且由于我们的代码是通过Git来做版本控制的,web上直接就支持Markdown格式的readme文件,可以随时看到最新的版本,但是这种规范只能依靠个人的意识,或者通过代码Review来解决,而且做代码Review的时候,你也不好意思总是写上一堆诸如“这里要加个空格”、“那里要加上换行”的评论吧?如果不管,久而久之,会因为每个人的习惯不同,代码呈现出多种风格,看起来也不像一个成熟团队做出来的产品。
UIWebView底部的黑条很难看,特别是在底部还有透明控件的时候,隐藏的做法其实很简单,只需要将opaque设为NO,背景色设为clearColor即可。 设置后:
DKTabPageViewController是一个UIViewController的子类,其基于Child ViewController管理多个页面,支持手动滚动,以及是否显示顶部的Tab等。
一个iOS上的标签云view,能生成随机的、不重叠的坐标,有一定的定制性: /** * Min font size. Defautls to 14.
DKCarouselView是一个自动的、无限循环滚动的View,支持按时自动滚动和暂停,通过block回调用户点击事件。 增加了对非无限循环的支持。 GitHub地址 DKCarouselView infinite scrolling f...
由于.a不能单独使用,必须要配合.h头文件,而且没有包含资源文件,所以用.framework就是更好的选择了。 iOS 8有了新的方式创建Framework,不过创建的framework是embedded framework,不能兼容iOS 8以下的版本,所以在现阶段要兼容iOS 7和iOS 8的话,还是只能用以前的方式来创建。
一个支持明暗码切换的TextField。 由于系统的UITextField在切换到暗码时会清除之前的输入文本,于是就有了DKTextField,DKTextField继承于UITextField,并且不影响UITextField的Delegate。
一个 Facebook 样式的图片多选控件 By Swift。 GitHub地址
一个用UICollectionView实现的滚动切换控件,每一页显示的内容可以用UICollectionViewCell自定义: GitHub下载地址
在Swift里为一个方法添加文档描述很简单,只需要用///就可以了,如: /// Called when right button is clicked.
当把CocoaPods生成的workspace移动到上层目录时,需要改下Pods.xcconfig和工程里的一些设置,就通常没什么难度。 当遇到这个问题时: Could not automatically select an Xcode project.
有时候不小心就报了这个错误,在以下步骤中,只有没解决问题的情况下,才继续往下操作: Clean工程 按住option键,再次Clean(Clean Build Folder.
iOS8 Core Image In Swift:自动改善图像以及内置滤镜的使用 iOS8 Core Image In Swift:更复杂的滤镜 iOS8 Core Image In Swift:人脸检测以及马赛克 iOS8 Core Image In Swift:视频实时滤镜 在Core Image之前,我们虽然也能在视频录制或照片拍摄中对图像进行实时处理,但远没有Core Image使用起来方便,我们稍后会通过一个Demo回顾一下以前的做法,在此之前的例子都可以在模拟器和真机中测试,而这个例子因为会用到摄像头,所以只能在真机上测试。
iOS8 Core Image In Swift:自动改善图像以及内置滤镜的使用 iOS8 Core Image In Swift:更复杂的滤镜 iOS8 Core Image In Swift:人脸检测以及马赛克 iOS8 Core Image In Swift:视频实时滤镜 Core Image不仅内置了诸多滤镜,还能检测图像中的人脸,不过Core Image只是检测,并非识别,检测人脸是指在图像中寻找符合人脸特征(只要是个人脸)的区域,识别是指在图像中寻找指定的人脸(比如某某某的脸)。
iOS8 Core Image In Swift:自动改善图像以及内置滤镜的使用 iOS8 Core Image In Swift:更复杂的滤镜 iOS8 Core Image In Swift:人脸检测以及马赛克 iOS8 Core Image In Swift:视频实时滤镜 上面那篇文章主要是Core Image的基础,只是为了说明CIImage、CIFilter、CIContext,以及基础滤镜的简单使用。
iOS8 Core Image In Swift:自动改善图像以及内置滤镜的使用 iOS8 Core Image In Swift:更复杂的滤镜 iOS8 Core Image In Swift:人脸检测以及马赛克 iOS8 Core Image In Swift:视频实时滤镜 Core Image是一个很强大的框架。
今天试读了一下《互联网创业密码》这本书,我觉得这本书首先很真实,刚从学校毕业那会儿,正是人生中觉得自己最牛b的时候,总想做些什么来证明自己,特别是现在又处于最好的时代,互联网给了一个人人平等的机会,创业的门槛变得很低,在这种背景下,相信很多人都曾有过创业的念头,有的人会迫不及待的开始,毕竟时机也是不等人的;有的人只是一直在心里想,想得越多,越来越恐惧丛生,最后给自己一个借口,让自己心安理得的下台。
拿到这本书的第一感觉是非常薄,但是内容就如同序里面所说,这不是一本面向初学者的书,比较有深度,对C/C++完全不熟悉的话很多东西会看不明白。 虽然此书在技术点上只谈到了ARC、Blocks和GCD,但是如果把这三部分的内容深入理解了,其实也等于将开发中大部分的问题都解决了,ARC面对的是内存管理的问题,相信每一个iOS开发者都曾面临过,对大多数人来说,只要记好内存管理的相关规则,就能避免内存管理的问题,如果不满足于只知其表象,想深入理解ARC的工作机制的话,这部分还是很值得一读的。
Grand Central Dispatch(GCD)是异步执行任务的技术之一。一般将应用程序中记述的线程管理用的代码在系统级中实现。开发者只需要定义想执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并计划执行任务。
在计算机科学中,柯里化(英语:Currying),又譯為卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。
友情提醒:图多杀猫。 以前在Windows下一直用gVim,可以用键盘控制一切,操作起来是又快又爽,还支持一大堆插件,想怎么玩就怎么玩。后来转Mac后,也沿袭着之前的习惯,一直在用终端的Vim,偶尔会觉得插件管理起来不方便,但没有插件也是万万不能的,慢慢地就开始想找另一款替代品,Sublime就这样映入眼帘,经过几个月的使用,越来越觉得爱不释手了。
安装Xcode6 Beta6之后,编译之前的项目可能会出问题,比如出现__TFSs26_forceBridgeFromObjectiveCU__FTPSs9AnyObject_MQ__Q_的问题,如下图: 遇到这个问题只要把Derived Data清除掉,重新编译就可以了: 这样一来__TFSs26_forceBridgeFromObjectiveCU__FTPSs9AnyObject_MQ__Q_的问题就解决了。
原文地址:https://developer.apple.com/swift/blog/?id=10 Swift中的类型分为两类:一,值类型(value types),每个值类型的实例都拥有各自唯一的数据,通常它们是结构体,枚举或元组;二,引用类型(reference types),引用类型的实例共享它们的数据,通常是一个类。
Optional的定义 Optional也是Objective-C没有的数据类型,是苹果引入到Swift语言中的全新类型,它的特点就和它的名字一样:可以有值,也可以没有值,当它没有值时,就是nil。
元组的定义 元组是Objective-C中没有的数据类型,与数组类似,都是表示一组数据的集合,但与数组不同,它的特点是: 元组的长度任意 元组中的数据可以是不同的数据类型 元组的定义很简单,用小括号括起来,然后以逗号隔开就可以了,如: var ...
在iOS7之前,开发者为了寻求自定义Navigation Controller的Push/Pop动画,只能受限于子类化一个UINavigationController,或是用自定义的动画去覆盖它。
如果你嫌在 App Store 下载 Xcode 太慢,你也可以选择从网络上下载: Xcode下载(Beta版打的包是不能提交到App Store上的) 绝对官方源!!!绝对官方源!!!绝对官方源!!! 不能确定自己的 Xcode 是否...
翻译自:https://github.com/raywenderlich/swift-style-guide 这个风格指南可能和你从其他地方看到的不同,我们的焦点主要集中在互联网和文章上的可读性,创建这个编程风格指南是为了保持我们的书籍、教程和入门工具包中代码的优雅与一致性------尽管我们有和许多不同的作者合作。
对Core Animation来说,不管是显式动画还是隐式动画,对其设置frame都是立即设置的,比如说给一个UIView做移动动画,虽然看起来frame在持续改变,但其实它的frame已经是最终值了,这种情况下,哪怕这个UIView是UIButton的实例,其触发touch事件的范围还是最终frame的地方。