swift学习中与Objective-C的差异

swift学习中与Objective-C的差异,第1张

概述Objective-C中的很多知识点到了swift中都有了很大的改变,使得swift学习,或研发过程中有很多不适。 现在就将遇到过的差异列举出来(后续会不断进行完善)。 注意: 1、Objective-C工程中类文件有两个xxx.h文件,xxx.m文件,两者是配套出现的。 2、swift工程中类文件只有一个xxx.swift文件。 1、打印调试命令 Objective-C格式为:NSLog(@".

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格式为:

- (voID)click:(UIbutton *)button{...}- (Nsstring *)click:(UIbutton *)button{...return xxx;}- (voID)click{...}
swift格式为(注意:使用关键字 func):

fun click(button:UIbutton) -> VoID{...}func click(button:UIbutton,Title:String) -> String{...return xxx;}func click(){...}


4、参数字义

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

let name = "DevZhang"let name:String = "DevZhang"var name = "DevZhang"name = "iOS DevZhang"

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

// Objective-CUIVIEw *vIEw = [[UIVIEw alloc] init];
// swiftlet vIEw = UIVIEw(frame: CGRectMake(10.0,10.0,200.0,200.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

总结

以上是内存溢出为你收集整理的swift学习中与Objective-C的差异全部内容,希望文章能够帮你解决swift学习中与Objective-C的差异所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1071788.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存