做过后端(J2EE),11年转 iOS ,12年中~14年中创过业(跨界开火锅店..),对代码有洁癖,致力于写出优雅的代码,在多个公司负责过 iOS 架构,熟悉设计模式,热衷产品设计与交互,业余时间担任 CSDN iOS 版块版主
“程序员工作效率有多高,取决于他大脑中对当前项目的熟悉程度,即变量名称、数据结构、编程接口以及工具类甚至是目录等,这些细节记住的越多,效率也越高。” 注释不是用来翻译程序代码的,用代码能说清楚的东西,就不要再用自然语言费脑子去写了,集中精力写出最优雅、质量高的代码才是首要的。
一般来说我们总会在设置Block之后,在合适的时间回调Block,而不希望回调Block的时候Block已经被释放了,所以我们需要对Block进行copy,copy到堆中,以便后用。
开始之前 Swift经过Xcode6 Beta4一版更新后,基本上已经可以作为生产工具了,虽然有一些地方和ObjC比起来要“落后”一些,但也无伤大雅。这里就用Xcode6 Beta4+iOS SDK 8.0开发,如果用ObjC的话,只需把某些语法和调用方式替换一下就可以了。
写这个的目的主要是用于了解Swift语言本身,以及如何与Objc和第三方框架交互需要先使用CSDN账号来登录,可以导出所有的博客文章,添加YAML头信息的时候,会在头信息里面包含文章对应的标签和分类,以及对应的文章类型(原创、转载、翻译) 开发环境 OS X 10.
开始之前 我觉得阮一峰的《搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门》是一个很经典的入门,每个Jekyll初学者都应该先去看一看,另外GitHub Pages官网以及Jekyllcn也是遇到问题时首先要查找的站点。
需要先使用CSDN账号登录,可以导出所有的博客文章,添加YAML头信息的时候,会在头信息里面包含文章对应的标签和分类以及原创的标签 自己写的mac版,以后可能会改成js版: GitHub地址
快两年没有更新blog了,现在有点时间随便写点东西吧。 做iOS项目中,可能会经常遇到要定制后退按钮的情况,比如把后退按钮的title固定为“返回”(修改title对后面push的vc生效),比如用图片,这时候大家一般会选择添加一个vc的基类,因为这个问题其实很简单,随便做点什么都能解决,今天我用另一种优雅的方法来解决这个问题。
NSAttributedString可以让我们使一个字符串显示的多样化,但是目前到iOS 5为止,好像对它支持的不是很好,因为显示起来不太方便(至少没有在OS X上方便)。
有时候我们可能需要复制UILabel上的文本,或者UIImageView的图片,而UILabel和UIImageView默认是不响应Touch事件的,也无法复制,那么我们就需要自己实现一个可复制的UILabel。
在开发中经常需要定制某些界面,navigationController的navigationBar就是一个很典型的例子,比如要修改背景图、后退按钮等等。
--构建完整路径 set filePath to ("" & (path to library folder from user domain) & "Preferences" & ":com.
禁止回弹 jQuery方式: $().ready(function(){ document.ontouchmove = function(e){ e.
NSString *imagePath = [[NSBundle mainBundle] resourcePath]; imagePath = [imagePath stringByReplacingOccurrencesOfString:@"/...
画虚线需要用到函数: CGContextSetLineDash 此函数需要四个参数: context – 这个不用多说 phase - 稍后再说 lengths – 指明虚线是如何交替绘制,具体看例子 count – lengths数组的...
UIView有一个私有方法:recursiveDescription 这个方法可以显示出当前视图的详细层级,可以在代码中直接调用,也可以在GDB中调用,在GDB中调用时需要借助另一个GDB命令:print-object: recursiveDescription: 由于是私有方法,键入时不会有任何提示,注意不要输错。
一共十八部词典,见下: 打了一个包,有700多M,在CSDN没有权限上传这么大的文件,故上传到115上。 放到/Library/Dictionaries/目录中即可。 下载地址
在网上看到有人如此实现动态调整高度:点击。 不至于为了获取高度创建一个不需要的cell。 主要有两个地方需要调整高度,一个是自己创建的UILabel或其它子视图,另一个就是cell的高度。
导读:Brad Feld的一篇文章The Rise of Developeronomics中提到了“10倍效率的开发者(10x developer)”的概念(伟大的开发者的效率往往比一般的开发者高很多,而不只是一点点),Adam Loving在读了之后受到启发,并向多位大牛(Ben Sharpe、Collin Watson和Jonathan Locke)询问如何成为“10倍效率的开发者”,最后得到了以下的答案。
这一年于我发生了太多事情,却没有改变我太多的思想。 都说工作几年的人菱角会被慢慢磨平,这可不是我想要的,我想实实倾听我内心的声音,想要变得坚强,能处理好更多的事情,但不想改变自己最初的想法。
这些心态都只是“招式”,没有“心法”的话并不知道怎么去做,看上去很美,实则修炼起来很难,现先把“招式”记下,如果哪天找到了“心法”再作更新。 要自信,绝对自信,无条件自信,时刻自信,即使在做错的时候。
首先,你得监听键盘的事件,最基本的两个事件:UIKeyboardWillShowNotification UIKeyboardWillHideNotification UIKeyboard... iOS 5新增加了一些 UIKeyboardDidChangeFrameNotification(will) 一般情况下,前两个事件已经可以完成你要做的事情。
效果图: 下载地址
近日读完了这本著作,心里久久不能平静,其实在读的过程中这种感觉也很明显,他的所作所为有时真的让正常人难以理解,他有”坏“的一面让我沉思,比如他不给和他一起创业的朋友股份,也曾经不和女儿相认,也有很多“好”的一面值得我们学习,比如他很专注。
init does not cause layoutSubviews to be called (duh) addSubview causes layoutSubviews to be called on the view being ad...
乍一看,这些设置可能太麻烦,其实它真的可以节省许多调试应用的时间,在xcconfig文件中指定即可。用标准库连接LINK_WITH_STANDARD_LIBRARIES = YES 如果激活此设置,那么编译器在链接过程中会自动使用通过标准库的链接器。
根据你需要执行的动作, 这里有几个方法: -(id)initWithFrame:(CGRect)frame - UIView的指定初始化方法; 总是发送给UIView去初始化, 除非是从一个nib文件中加载的; -(id)...
源码地址
SDK4.3编译通过,带开源框架,支持点击事件 源码地址 里面有8张背景图片,资源可能会有点大,总共17M左右
运行时获取类的所有方法,找到获取颜色的方法并记录下来 源码地址
Core Location可以利用三种技术来实现:GPS、蜂窝基站三角网定位(cell tower triangulation)和Wi-Fi定位服务(WPS),其中GPS是最精确的。
iOS不是真正的多任务系统,在用户按下Home按钮后,所有应用程序都会进入后台状态,并且大部分都会迅速进入暂停状态,应用程序的所有工作内存都在RAM中,在暂停时它完全不执行。
源码地址 有问题请指出,Thanks in advance!
在Lion中不支持旧的Xcode版本(3.x),你只能安装Xcode4.x,这对使用第三方IB插件的Mac开发者来说不是一个好消息。 如果你尝试去安装,就会发现Xcode Toolset组件不能选择(禁用),这会导致错误的安装结果,会有一些空的文件夹,没有Xcode应用程序或者没有SDK等。
面向对象的设计中,有一个特性封装性,就是将某些东西包装和隐藏起来,让外界无法直接使用,只能通过某些特定的方式才能访问。 在Objective-C中也可以做到这一点。
NSAutoreleasePool是一个存放对象的集合,添加到NSAutoreleasePool的对象能够被自动释放。 自动释放其实就是在NSAutoreleasePool被清空或是销毁时向池里所有的对象发送一条release消息。
文档地址:Property Declaration Attributes section of the Objective-C Programming Language assign:指定setter方法用简单的赋值,这是默认操作。
虽然不想再学Emacs的使用,但为了在Mac下使用的更顺畅,还是记录下来,因为这些按键可以在Xcode、TextEdit、Safari的URL地址栏等处使用。
在项目中需要涉及这一块,在此之前是从未接触过的.在此记录一些方法和问题. // 得到测试用的绑定数据 PolicyDatasource datasource = new PolicyDatasource(new PolicyService().
上传做完了交由测试的时候,反馈说上传失败,自己试了试,都是成功的,于是叫测试人员把图片发给我看看。刚开始以为是图片太大了(2.9M,其实也没多大),我后来用一个3M的图片上传都上传成功了,仔细对比了图片的信息,发现失败的那张是CMYK的颜色样式,...
将图片横切或者竖切为两张 public void carveImage(String dir, File file, String orient, int width, int height) { ImageFilter cropFil...
发现以前记得很清楚的命令也变得模糊了,总是在需要用到的时候不能及时地想起来。我将自己会用到的命令记录在此,基本的移动和搜索以及正则表达式就不记录了,其它的只要是用过,哪怕只是一遍。
先上传压缩后的效果图一张: 图片1是压缩前,2是压缩后,这是以最大压缩比压缩的,效果只有自己去看了。 package zhangao.main; import java.
flash文件直接用的Flash Page Flip,但依然需要修改很多fla源文件才能为我所用(包括汉化,字体嵌入,中文影片剪辑的处理,菜单栏的自定义等),需要对ActionScript有一定的了解。
OSX 的文件系统OSX 采用的Unix文件系统,所有文件都挂在跟目录 / 下面,所以不在要有Windows 下的盘符概念。你在桌面上看到的硬盘都挂在 /Volumes 下。
不知道有没有人遇到过这种情况: 这两种情况都是关联的图标不能正常显示,但是可以正常打开。总觉得看着挺碍眼的,就看了下注册表,发现可以用以下方法解决: 打开注册表,[HKEY_CLASSES_ROOT] 找到需要修改的文件类型,比如html文件的图标不能正常显示,就找.
使用的Android版本是2.2。 初始界面: 也就两个按钮,不能同时启用,再加上一个progressBar和TextView,用于显示下载进度百分比。
今天花了至少3个小时跑这个java调c的动态链接库的Hello,native world的程序。把所有犯的错误和要点总结一下!1 java 中 c语言函数的声明 public native static void greeting(); //就像是接口声明一样,不过有native!2 编译 javac HelloNative.
源地址:http://java.sun.com/docs/books/jni/html/start.html#26346 本文是将书中的第二章单独抽出来,红色部分为译者注.
使用这套API操作Excel时,将对Excel进行全程锁定,所以不能有其他程序访问同一文件. package poi; import java.io.
JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。