swift学习中与Objective-C的差异

来源:互联网 发布:乐视视频下载mac 编辑:程序博客网 时间:2024/06/06 18:52

Objective-C中的很多知识点到了Swift中都有了很大的改变,使得swift学习,或研发过程中有很多不适。

现在就将遇到过的差异列举出来(后续会不断进行完善)。


注意:

1、Objective-C工程中类文件有两个xxx.h文件,xxx.m文件,两者是配套出现的。

2、swift工程中类文件只有一个xxx.swift文件。


1、打印调试命令

Objective-C格式为:NSLog(@".....%@...",variable)

swift格式为:print("...\(variable)....")


2、格式分隔

Objective-C格式为:#pragma mark - XXX

swift格式为:// MARK: - XXX(注意:没有 - 符号时,不会有分隔线)

另外 // FIXME: - xxx 表示需要修复的异常代码;// TODO: - xxx 表示需要继续完成的代码


3、函数定义

Objective-C格式为:

[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. - (void)click:(UIButton *)button  
  2. {  
  3. ...  
  4. }  
  5.   
  6. - (NSString *)click:(UIButton *)button  
  7. {  
  8. ...  
  9. return xxx;  
  10. }  
  11.   
  12. - (void)click  
  13. {  
  14. ...  
  15. }  
swift格式为(注意:使用关键字func):

[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. fun click(button:UIButton) -> Void  
  2. {  
  3. ...  
  4. }  
  5.   
  6. func click(button:UIButton, title:String) -> String  
  7. {  
  8. ...  
  9. return xxx;  
  10. }  
  11.   
  12. func click()  
  13. {  
  14. ...  
  15. }  


4、参数字义

swift中定义参数,使用关键字let,或var。使用let定义的为常量,且定义后不能修改值;而使用var定义的为变量,可以修改值。

[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. let name = "DevZhang"  
  2. let name:String = "DevZhang"  
  3.   
  4. var name = "DevZhang"  
  5. name = "iOS DevZhang"  

另外swfit中定义类对象时,不再使用符号*。

[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // Objective-C  
  2. UIView *view = [[UIView alloc] init];  
[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // swift  
  2. let view = UIView(frame: CGRectMake(10.010.0200.0200.0))  


5、分号;的使用差异

Objective-C中,每个单独语句都需要以分号;来结束

swift中,每个单独语句,可用可不用分号;来结束,系统会做处理


6、布尔值定义

Objective-C中格式为:真为YES,或1;假为NO,或0

swift中格式为:真为true,假为false


7、文件的引用

Objective-C中引用格式为:#import <UIKit/UIKit.h>

swift中引用格式为:import UIKit


8、任意类型

Objective-C中的任意类型为:id,即 id object = xxxx

swift中的任意类型为:Any,或AnyObject,其中Any包括方法Selector,而AnyObject不包含方法Selector



0 0
原创粉丝点击