李洪强iOS开发Swift篇—02_变量和常量

一、语言的性能

(1)根据WWDC的展示

在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3.9倍

在实现 RC4加密算法时Objective-C的的性能是Python的127倍,Swift的性能是Python的220倍

有持怀疑态度的国外程序员,也对Objective-C和Swift的性能进行了测试 http://www.splasmata.com/?p=2798

(2)说明

目前的性能不是开发者最需要担心的问题

苹果已经全盘掌握了这个语言的方方面面:从底层编译框架到编译器再到语言设计

优化之路才刚刚开始,作为开发者,需要给这门新语言一点点耐心和信心

二、Swift与Objective-C代码格式对比

以添加一个按钮为例

(1)Objective-C语言

UIButton *btn = [[UIButton alloc] init];

btn.frame = CGRectMake(20, 20, 100, 100);

btn.backgroundColor = [UIColor blueColor];

[self.view addSubview:btn];

(2)Swift语言

var btn = UIButton()

btn.frame = CGRectMake(20, 20, 100, 100)

btn.backgroundColor = UIColor.blueColor()

self.view.addSubview(btn)

三、语法须知

1.Swift的源文件拓展名是.swift

  

2.Swift语言的2个不需要

(1)不需要编写main函数

  从上往下按顺序执行,所以最前面的代码会被自动当做程序的入口

(2)不需要在每一条语句后面加上分号

  let radius = 10  你喜欢的话,也可以加上   let radius = 10;

  注意:有一种情况必须加分号:同一行代码上有多条语句时 let radius = 10;    let radius2 = 15

(3)关于注释

1)单行注释

  // 这是单行注释

2)多行注释

/*  这是多行注释

这是多行注释 */

3)多行注释可以嵌套多行注释

/* 外层注释

/* 内层注释

内层注释 */

外层注释 */

四、变量和常量

1.声明常量和变量

用let来声明常量  let radius = 10

用var来声明变量 var age = 20   或者是var x = 0.0, y = 0.0, z = 0.0

2.基本上可以用任何你喜欢的字符作为常量和变量名

(1)let π = 3.14159

(2)let 网址 = "http://ios.itcast.cn"

(3)let ?? = "小狗和母牛"

// ?和?是emoji表情,是一种特殊的Unicode字符

// 可以在Mac上通过快捷键:control + command + 空格 ,弹出emoji键盘

3.常量和变量名的注意点

不能包含数学符号(比如 + 、-、 *、\ )

不能包含箭头(比如↑、↓、←、→)

不能包含非法无效的Unicode字符(比如⚽ )

不能是关键字(比如let、var)

不能以数字开头(比如 123go)

不能是单独一个下划线 _ (比如var _ = 10)

… …

五、代码演示

1.命令行项目

新建一个命令行项目(注意使用的时XCode6版本)

选择语言为swift语言。

  

最简单的程序:打印helloWord!

  

2.ios项目

(1)项目结构说明

  新建一个ios项目

新建的项目结构如下图所示:

  

storyboard是一个正方形的,比以前的都大,这里先调整为3.5英寸的。

对比和OC语言ios项目的区别:
(1)没有前缀

(2).h和.m文件合并为一个后缀名位.swift的文件

控制器中的类的结构如下:

  

(2)添加一个按钮和imageView的代码示例

  

实现效果:

  

(3)新建一个playground演练程序

  

  演练程序的即时编译效果:

    

李洪强iOS开发Swift篇—02_变量和常量相关推荐

  1. 李洪强iOS开发之- 实现简单的弹窗

     李洪强iOS开发之- 实现简单的弹窗 实现的效果:  112222222222223333333333333333

  2. 李洪强iOS开发之后使用XIB实现横向滚动的UIScrollView

    李洪强iOS开发之后使用XIB实现横向滚动的UIScrollView 11111222

  3. 李洪强iOS开发本人集成环信的经验总结_01环信SDK的导入

    李洪强iOS开发本人集成环信的经验总结_01环信SDK的导入 01 - 直接在项目中导入SDK和一些静态库 这个时候,没有错误的编译没有错误的话,就说明SDK已经配置成功 还有一种方法是用cocoap ...

  4. 李洪强iOS开发之苹果企业开发者账号申请流程

    李洪强iOS开发之苹果企业开发者账号申请流程 一. 开发者账号类型选择 邓白氏码 DUNS number,是Data Universal Numbering System的缩写,是一个独一无二的9位数 ...

  5. 李洪强iOS开发支付集成之支付宝支付

    iOS开发支付集成之支付宝支付 下载支付宝SDK 首先是开发包下载,还是比较难发现的,网上以前文章中的链接都打不开,我找了好久才找到的.最新的地址在这里(注意的是下载出来的SDK包里面并没有传说中的开 ...

  6. 李洪强iOS经典面试题153- 补充

    李洪强iOS经典面试题153- 补充   补充 有空就来解决几个问题,已经懒癌晚期没救了... UML 统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模 ...

  7. 李洪强iOS之集成极光推送二iOS 证书 设置指南

    李洪强iOS之集成极光推送二iOS 证书 设置指南 创建应用程序ID 登陆 iOS Dev Center 选择进入iOS Provisioning Portal. 在 iOS Provisioning ...

  8. 李洪强iOS经典面试题156 - Runtime详解(面试必备)

    李洪强iOS经典面试题156 - Runtime详解(面试必备)   一.runtime简介 RunTime简称运行时.OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制. 对于C ...

  9. 李洪强iOS经典面试题37-解释垃圾回收的原理

    李洪强iOS经典面试题37-解释垃圾回收的原理 问题 我们知道,Android 手机通常使用 Java 来开发,而 Java 是使用垃圾回收这种内存管理方式. 那么,ARC 和垃圾回收对比,有什么优点 ...

最新文章

  1. 【linux】串口编程(二)——非阻塞接收
  2. linux selenium_爬虫界又出神器|一款比selenium更高效的利器
  3. Python公众号开发部分代码开源
  4. 高精度模板(含加减乘除四则运算)
  5. windows2008开机占用多少内存_Android内存占用分析
  6. hibernate 级联删除
  7. 机器学习算法应用30篇(十)-通俗理解支持向量机SVM及代码实践
  8. 【深度】韦东山:一文看尽 linux对中断处理的前世今生
  9. 学python哪个网站好-有哪些值得推荐的Python学习网站|
  10. java如何配置log4j_eclipse中纯java配置log4j日志
  11. python余弦定理求角_余弦定理计算文章相似度
  12. 超详细的Redis入门教程
  13. linux安装yum报错Unable to locate package yum
  14. 【牛客网C++服务器项目学习】Day12-网络编程的两种事件处理模式
  15. 【JS】经典的对联广告代码,JS代码实现
  16. 用prototype 方法$A() uncheck radio button
  17. 红米note4x装linux,红米Note4X自己安装Magisk的过程
  18. 搜狗VS有道,搜索市场追赶者
  19. 如何写introduction
  20. 博客图片html代码,【html博客代码】图片羽化代码

热门文章

  1. MySQL运行一段时间后自动停止问题的排查
  2. Spring(二)--FactoryBean、bean的后置处理器、数据库连接池、引用外部文件、使用注解配置bean等...
  3. 如何把高版本的sqlserver 还原到低版本的 sqlserver
  4. selenium webdriver学习(八)------------如何操作select下拉框(转)
  5. 丹佛机场行李系统Postmortem
  6. CSS媒体查询,CSS根据不同的分辨率显示不同的样式
  7. 让XCode的Stack Trace信息可读
  8. 2013年1月12日学习内容
  9. Jedis的使用及SpringBoot整合Redis
  10. parameterType 属性、typeAliases 别名