ObjectiveC转Swift参考文

swift与objective-c的相异之处

1、在objective-c中,我们必须将所要用的标头档在一个.h档中import它,并在.h档中宣告全域变数或是storyboard新增的元件,然后在.m档中import这个.h档,如此一来才能在.m中使用刚刚在.h宣告的变数以及其标头档所包含的function,但在swift中我们只需要一个档案去控制一个view,而会参考到的标头档以及所用到的全域变数则全部放在这个档案中。

、swift不用分号来区隔两行code,除非两行code写在同一行

a=b+cx=y/z

a=b+c;x=y/z

3、swift没有指标,因为指标可以直接存取记忆体,swift注重安全性,避免非法记忆体存取造成crash,所以并没有指标

4、在swift当中,宣告变数用var,宣告常数用let范例程式5、在swift当中用printfln来显示字串,objective-c则使用NSLog范例程式

objective-c:

inta=5;NSLog(

"a=%i",a);

swift:

vara:Int=5printfln("\(a)")

以上两段程式码做的是同样的事将Int型态的变数a以string的形式显示出来swift用一个"()",括弧内放欲显示的变数

6、swift和objective-c在宣告变数常数上的不同

objective-c:

UITableView*myTableView=[[UITableViewalloc]initWithFrame:CGRectZerostyle:UITableViewStyleGrouped];

swift:

letmyTableView:UITableView=UITableView(frame:CGRectZero,style:.Grouped)

swift在设定某物件的属性时几乎不用中括弧[]

以上两段程式码做的是同样的事宣告一个资料型态为UITableView的常数myTableView,并给予他初值

7、swift和objective-c在定义function上的不同(范例专案Kotel中的HttpController.swift)

objective-c:

-(NSDate*)dueDateForProject:(id*)sender;

swift:

funcdueDateForProject(sender:anyobject!)-NSDate!

以上两段程式码做的是同样的事,function名称为dueDateForProject,参数型态为id/anyobject,回传值型态为NSDate

swift的anyobject型态=objective-c的id型态

8、swift的optional范例程式?:可能有值,可能无值,想成封装!:一口咬定有值,强制认为有值,想成强制拆封

第6行:宣告变数c时一口咬定他之后会有值第9行:一开就强制认为c之后一定会有值,所以此处用c运算时直接使用第17行:一开始宣告变数z时我们不确定,之后使用到z时他会不会有值,所以使用?第0行:在此处的运算需要用到变数z所以不管z是否有值我们都必须用!去强制拆封取得z的值  所幸我们在第1行有给变数z一个值,若是没有给z一个值,在第3行强制拆封要使用却没有值  有可能造成crash8、swift和objective-c在closure(闭包)的不同范例程式

objective-c:

void(^


转载请注明:http://www.aierlanlan.com/rzdk/7061.html