李洪强iOS开发Swift篇—02_变量和常量
李洪强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_变量和常量相关推荐
- 李洪强iOS开发之- 实现简单的弹窗
李洪强iOS开发之- 实现简单的弹窗 实现的效果: 112222222222223333333333333333
- 李洪强iOS开发之后使用XIB实现横向滚动的UIScrollView
李洪强iOS开发之后使用XIB实现横向滚动的UIScrollView 11111222
- 李洪强iOS开发本人集成环信的经验总结_01环信SDK的导入
李洪强iOS开发本人集成环信的经验总结_01环信SDK的导入 01 - 直接在项目中导入SDK和一些静态库 这个时候,没有错误的编译没有错误的话,就说明SDK已经配置成功 还有一种方法是用cocoap ...
- 李洪强iOS开发之苹果企业开发者账号申请流程
李洪强iOS开发之苹果企业开发者账号申请流程 一. 开发者账号类型选择 邓白氏码 DUNS number,是Data Universal Numbering System的缩写,是一个独一无二的9位数 ...
- 李洪强iOS开发支付集成之支付宝支付
iOS开发支付集成之支付宝支付 下载支付宝SDK 首先是开发包下载,还是比较难发现的,网上以前文章中的链接都打不开,我找了好久才找到的.最新的地址在这里(注意的是下载出来的SDK包里面并没有传说中的开 ...
- 李洪强iOS经典面试题153- 补充
李洪强iOS经典面试题153- 补充 补充 有空就来解决几个问题,已经懒癌晚期没救了... UML 统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模 ...
- 李洪强iOS之集成极光推送二iOS 证书 设置指南
李洪强iOS之集成极光推送二iOS 证书 设置指南 创建应用程序ID 登陆 iOS Dev Center 选择进入iOS Provisioning Portal. 在 iOS Provisioning ...
- 李洪强iOS经典面试题156 - Runtime详解(面试必备)
李洪强iOS经典面试题156 - Runtime详解(面试必备) 一.runtime简介 RunTime简称运行时.OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制. 对于C ...
- 李洪强iOS经典面试题37-解释垃圾回收的原理
李洪强iOS经典面试题37-解释垃圾回收的原理 问题 我们知道,Android 手机通常使用 Java 来开发,而 Java 是使用垃圾回收这种内存管理方式. 那么,ARC 和垃圾回收对比,有什么优点 ...
最新文章
- 【linux】串口编程(二)——非阻塞接收
- linux selenium_爬虫界又出神器|一款比selenium更高效的利器
- Python公众号开发部分代码开源
- 高精度模板(含加减乘除四则运算)
- windows2008开机占用多少内存_Android内存占用分析
- hibernate 级联删除
- 机器学习算法应用30篇(十)-通俗理解支持向量机SVM及代码实践
- 【深度】韦东山:一文看尽 linux对中断处理的前世今生
- 学python哪个网站好-有哪些值得推荐的Python学习网站|
- java如何配置log4j_eclipse中纯java配置log4j日志
- python余弦定理求角_余弦定理计算文章相似度
- 超详细的Redis入门教程
- linux安装yum报错Unable to locate package yum
- 【牛客网C++服务器项目学习】Day12-网络编程的两种事件处理模式
- 【JS】经典的对联广告代码,JS代码实现
- 用prototype 方法$A() uncheck radio button
- 红米note4x装linux,红米Note4X自己安装Magisk的过程
- 搜狗VS有道,搜索市场追赶者
- 如何写introduction
- 博客图片html代码,【html博客代码】图片羽化代码
热门文章
- MySQL运行一段时间后自动停止问题的排查
- Spring(二)--FactoryBean、bean的后置处理器、数据库连接池、引用外部文件、使用注解配置bean等...
- 如何把高版本的sqlserver 还原到低版本的 sqlserver
- selenium webdriver学习(八)------------如何操作select下拉框(转)
- 丹佛机场行李系统Postmortem
- CSS媒体查询,CSS根据不同的分辨率显示不同的样式
- 让XCode的Stack Trace信息可读
- 2013年1月12日学习内容
- Jedis的使用及SpringBoot整合Redis
- parameterType 属性、typeAliases 别名