如何简单粗暴学习开发ios(4)

28)关于@protocol

Xcode创建项目的时候自动生成的代码比如有这样的内容:

@interface AppDelegate : UIResponder <UIApplicationDelegate>

我疑惑了很久最后那个“<>”是个什么语法,找了半天才明白,这句话的含义大概相当于Java语法:

class AppDelegate extends UIResponder implements UIApplicationDelegate

其中UIApplicationDelegate是一个接口协议(@protocol),例如:

@protocol TestProtocol
@required
- (void)requiredMethod;
@optional
- (void)optionalMethod;
@end

protocol的继承:

@protocol Test2Delegate <Test1Delegate>
@end;

翻译一下

OC(Objective-C) Java
@interface class
: extends
<> implements
29)Objective-C的优(qi)雅(guai)语法,方法定义
- (void) doIt:(NSString *) actorName movieName: (NSString*) value timesSeen: (int)times

大致相当于Java语法:

void doIt( String actorName, String value, int times );

OC干嘛不干脆把“:”也去掉,就可以跟文言文差不多了:p

30)浅谈MVC

Xcode天然的倾向于MVC设计模式,Xcode创建项目的时候,各种模板生成的项目中都有xxxController这样的对象。通常各个View都会配一个Controller,而用“Page-Based Application”模板创建的项目,还会有个ModelController。大体上还算合理。

相对来说,Java JDK的控件在MVC的应用上是比较繁琐的,有些控件自带MVC,其实只是一个View对象而已。比如界面上放一个JTable表格,但经常还要搭配一个DefaultTableModel来操作数据,其实反而把事情复杂化了。

MVC是设计模式中比较常见的一种,不过其概念和实现都相对宽泛,主要是为了减少耦合,有利于代码理解、维护、重用等。不过实际应用中,具体情况千差万别,M、V、C各自的职责和相互间的边界并不那么容易界定。个人习惯来说,我通常将整个程序拆分为【视图】、【视图管理】、【业务管理】、【数据封装】、【数据】几大部分。

【用户】-【视图】-【视图管理】-【业务管理】-【数据封装】-【数据】
  • 视图:界面(仅仅是界面),相当于Interface Builder创建的xib或StoryBoard之类的东东。
  • 视图管理:管理界面的变化。界面元素的呈现方式千变万化,而且经常有些业务逻辑并不都设计数据模型都变化,其实就是需要变换各种不同的界面形式来展示信息,用户在各种信息(page)或不同层次(master-detail)或不同形式(图形/表格)之间来回跳转。因此视图管理经常有好多工作量,可以单独作为一个部分拆分出来。
  • 业务管理:控制业务逻辑,通常侧重于涉及数据变化的部分。
  • 数据管理:封装对数据的操作,尤其比如数据库、文件、远程通讯等等,但不处理业务逻辑。
  • 数据:数据库等等。

不过,既然说简单粗暴,其实经常我也把各种东西混在一起写。代码感觉“脏”得受不了的时候,重构一下,世界又清爽一些。现代IDE开发环境对重构的支持很有帮助,比如对变量或方法的引用都可以比较容易的回溯,不用全文搜索那么麻烦,相对容易判断局部重构对程序其它部分的关联和影响。

不过多人协作的大项目还是要尽量设计阶段就谨慎一点,主要是互相有接口,重构如果会影响到别人到模块,难免会有纠纷。

31)Objective-C的变量和属性(@property)

原来属性跟变量不是一个东西(-_-|||)。
简单来说,编译器对@property自动生成getter和setter方法,可以少写几行代码。通过getter和setter方法,可以定义变量为private,但getter和setter方法(默认实现就是存取变量值)实质上导致该变量相当于public,所以个人而言其实是不喜欢这种形式的。

通过设置不同的限定词,可以控制属性的读写、原子性、深浅拷贝、引用计数方式。不过总的来说,默认实现对变量控制意义不大,需要自定义控制逻辑就还是得自己写代码。
参考:[OC:属性][] 这篇文章对属性和限定词有解释。
[OC:属性]:http://www.jianshu.com/p/786ce7c7c899

32)Xcode快捷键(windows键盘):
windows mac
win command(四叶花图标)
alt option(鸡翅膀图标)
ctrl control(^)
shift shift(向上箭头)

比如在Windows常用的拷贝(ctrl+c)粘贴(ctrl+v),在Xcode快捷键(用Windows键盘的话)是拷贝(win+c)粘贴(win+v)。

33)WINDOWS与VMware MAC共享文件夹

度娘搜索出来的结果基本都是说在“虚拟机设置”-“选项”-“共享文件夹”里面设置一下就可以,但我操作多次都不成功,重装了VMTools也不行,在MAC看不到WINDOWS的文件夹。
后来终于找到这份说明 [Win7 和 MAC 系统通过VMware共享文件夹][],按步骤操作搞定。我用的VMware® Workstation 12 Pro,Version 12.1.1,虚拟机OS X 10.11。
[Win7 和 MAC 系统通过VMware共享文件夹]:http://blog.sina.com.cn/s/blog_725cab6d0100r9dv.html

34)APPLE官方Sample,以及各种文档资料

https://developer.apple.com/library/prerelease/content/navigation/

35)简书文章中插入代码框格式

为了让文章格式好看一点,学了下Markdown语法。

  1. 在个人设置中修改为采用 Markdown 编辑器
  2. 用三个反引号将代码包围起来,即显示为本文的代码框格式。参考 简书中代码框的实现
  3. 更多 Markdown 语法参考 Markdown 语法说明 (简体中文版) 还有 Markdown——入门指南
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,943评论 4 60
  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 25,212评论 7 249
  • 三体是一本好书,它不够完美。给我一种强烈的感官体验。可是我牢牢地记住了!深深的在脑海里, 把三体当作信仰,还不能...
    妲视树阅读 140评论 0 0
  • 关键字:周六、办公室、岸登、盖浇饭、 今天周六,昨天入睡前把闹钟推迟了两个小时,一觉睡到自然醒,躺在床上玩手机时,...
    二石兄阅读 172评论 0 1
  • 清流顺势却无争, 一任逶迤入海中。 大浪淘沙千百目, 真金炼就众心恒。 ――《众志成城*云水禅心》看图说话...
    云水禅心ZLM阅读 297评论 0 2