读《禅与 Objective-C 编程艺术》
关于单例要注意两个问题,一是线程安全问题;二是要确保它是一个单例。 线程安全问题推荐通过使用 dispatch_once() 来解决,取代 iOS4.0 之前没有 GCD 时期使用的 @synchronized 方案。 123456789+ (instancetype)sharedInstance{ static id sharedInstance = nil; static dispatch_once_t onceToken = 0; dispatch_once(&onceToken, ^{ sharedInstance = [[self a ...
阅读更多
愉快的leetcode
写这篇分享的时候,回忆起上大学那会儿的算法课,现在想起来都瑟瑟发抖。课本是三大圣经之一的《算法导论》,我们一群刚从从新手村里出来的弱鸡,看着前面这座大山,内心十分抗拒。那会儿的想法是,学这个有用吗?其实不光是算法,西电在本科期间设置的课程大多不涉及工程领域,四年时间,三年半都在学数据结构、算法、计算机导论、编译原理、计算机网络这些CS专业基础课,而且由于在当时看来这些课程本身没有太大联系,学的时候内心是充满困惑的。但现在看来,还是那时太年轻啊,工作之后面临的新技术,其实一点儿都不“新”。那些所谓的新技术,核心和本质的东西其实就是当初学的那些基础知识。掌握了这些基础之后,学任何东西都很快。现在我 ...
阅读更多
重新起飞
15年搭了这个blog,那会儿才刚开始学iOS的时候,零零碎碎写了写东西就急急忙忙的去实习、校招、毕业…..各种各种,后来工作之后的大部分笔记都放在了Evernote上,也没怎么整理发出来。 其实还是应该多写写东西发出来的,有产出才算真的理解某个东西。所以时隔将近四年决定重新装修一下开门儿营业,再次起飞。 还是又重新折腾了一番,换了个主题,把统计啊评论什么的接进来,hexo的命令都忘得差不多了。。。 之前的用的七牛免费的图床也挂了,寻思着挂了就挂了吧,正好有台机器闲着,回头搭个自己的图床算了。结果发现自己图都整不出来,还得配个自己的域名上去。。。shit! 好吧,那就顺便搞个域名,正好也给bl ...
阅读更多
XML/JSON数据解析
除了XML和Json,文中还涉及到的一些知识:第三方类库的使用,获取本地文件内容,网站API使用,GCD多线程编程,不做详细介绍,在代码出现的地方会注明。 先安利一波: JsonXML 大数据时代,我们需要从网络中获取海量的新鲜的各种信息,就不免要跟着两个家伙打交道,这是两种结构化的数据交换格式。一般来讲,我们会从网络获取XML或者Json格式的数据,这些数据有着特定的数据结构,必须对其进行解析,得到我们可以处理的数据。所谓“解析”,就是从事先规定好的格式串中提取数据。解析的前提是数据的提供方与获取方提前约定好格式,数据提供方按照格式提供数据,数据获取方按照格式获取数据。 iOS开发中, ...
阅读更多
UI组件学习(个人整理)
最近把iOS里的UI组件重新整理了一遍,简单来看一下常用的组件以及它们的实现。其实现在这些组件都可以通过Storyboard很快的生成,只是要向这些组件能够变得生动起来并且赋予它们更具生命力的事件,还是需要一番功夫的。 UIButton这儿有一篇教程,挺全的,可以参考下:http://www.cnblogs.com/chen1987lei/archive/2011/09/09/2172757.html 这个就不多说了,对照官方的文档也可以更多的去学习。插一句题外话,在学这些组件的时候,最令人头疼的不是你搞不定一个组件的某个属性或者方法,而是你压根儿不知道有这个东西。所以在学习这些组件的时候最 ...
阅读更多
自定义并使用自己的ViewController
iOS6以后,在新建工程时已经没有了以前的Empty Application,往往新建的是Single View Application,而这个模板却自带了ViewController。在实际的应用中,我们往往需要自定义ViewController,要使用更易理解的命名,这时候,系统默认的这个家伙就显得有些烦人了,作为一个重度强迫症,自然是不能忍受的。但是如果只是简单地将ViewController.h和ViewController.m文件删除,然后新建自己的ViewController并使用,往往不能如人所愿,会出现各种各样的问题,抛出NSInternalInconsistencyExcep ...
阅读更多
从一道题看Delegate
继上次通过Storyboard完成了简单地页面跳转之后,我发现了很多问题,比如从第二个页面回跳到第一个页面,并不是依照正向跳转那样简单地模仿就好,在实际运行中会发现程序报错了。这次,我们将结合一道经典的题目,完成对页面跳转、传值以及附带的相关键盘输入的问题总结。题目源自《iOS开发之美》一书,有兴趣的小伙伴可以去翻来看看,我在学习之后加入了很多自己的感悟和实际操作的情况。原题如下: 有两个scene,分别为Scene A和Scene B。Scene A上有一个UIButton(Button A)和一个UILable(Lable A);Scene B上有一个UITextFiled(textF ...
阅读更多
Storyboard页面跳转
Storyboard(分镜or故事板)一词源于电影业,在漫画创作中也很常见,它在电影或者漫画创作中扮演着“诠释者”的角色,主要是对作品中的各种事件进行描述,比如它们的发生顺序、观察角度、相互之间的关联等等。 苹果自iOS5开始推出了开发领域的Storyboard,并建议UI开发使用,旨在代替历史悠久的历史悠久的NIB/XIB。以往的XIB的使用方法是一个viewController对应一个nib文件。StoryBoard的最大作用就是把这些nib文件组织起来,放在一个文件——MainStoryBoard.storyboard里,同时在此文件里面提供了不同试图间的切换。 虽然Stor ...
阅读更多
从几只小爬虫开始
人生苦短,我用Python。 Why every programmer should learn Python or Ruby 更新记录 2015-10-12 使用代理 简单地图片下载爬虫废话不多说,来看第一个例程。 123456789import urllib.requestreq = urllib.request.urlopen('http://placekitten.com/g/500/600')response = urllib.request.urlopen(req)cat_img = response.read()with open('ca ...
阅读更多
史上最完全Mac安装Scrapy指南
博主作为一名python爬虫爱好者,怎能不折腾下Scrapy?于是在折腾了两个下午之后,终于把Scrapy装在了Macbook上。说起来还真的是蛮坎坷的,网上大多是win和Linux下的安装教程,Mac端的安装教程实在是少的可怜,安装初期也是遇到各种各样的错误,经过一番摸索加实践,现总结出最完全的Mac端Scrapy安装指南。 更新记录2015年10月5日 - 解决ImportError:cannot import name xmlrpc_client问题 准备工作安装开始前,你需要知道的几点注意事项和工具: MAC OS是自带python 2.7的,而目前Scrapy也只是在p ...
阅读更多