iOS Developer程序员iOS 开发

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

2016-08-18  本文已影响109人  X猪
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各自的职责和相互间的边界并不那么容易界定。个人习惯来说,我通常将整个程序拆分为【视图】、【视图管理】、【业务管理】、【数据封装】、【数据】几大部分。

【用户】-【视图】-【视图管理】-【业务管理】-【数据封装】-【数据】

不过,既然说简单粗暴,其实经常我也把各种东西混在一起写。代码感觉“脏”得受不了的时候,重构一下,世界又清爽一些。现代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——入门指南
上一篇下一篇

猜你喜欢

热点阅读