一篇文章看懂有关iOS开发语言的一切!

2018 年 1 月 8 日 CocoaChina 七声颤抖

前言


iOS开发语言有哪些?OS开发语言主要包括什么?iOS开发语言具体怎么学习?今天重点介绍一下:


iOS开发语言主要包括:C语言基础、Obiective-C编程、Swift、UIKit框架详解这几大块,在这里项目阶段就不详细的介绍了。


C语言基础 C语言是开发语言的基础,是最常用的一门程序设计语言,最常用于编写计算机程序。


Obiective-C编程 Obiective-C是在C语言的基础上,加入面向对象特性扩充而成的通用型高级编程语言。


Swift是苹果新开发的语言,目的就是取代OC,我也正在学习,最大感受就是简洁与效率高 UIKit框架详解 UIKit框架是iPhone应用程序开发中最基本的框架,也是最常用到及最重要的框架。


语言基本上都是差不多的,只是换了一种写法,更甚至可以说编程上思想都基本相同,只是换了一种表达方式。


最基本的头文件


最基本的说起


OC中的头文件和实现文件


.h文件类似C++中的.h文件


.m文件类似.cpp文件


头文件作用也都差不多,声明一些函数方法,属性或变量,作用都是提供接口


Swift不一样,没有头文件!!直接用便可。


所有实现文件后缀都是.swift C++导入头文件是用#include OC导入头文件可以用#include和 #import,但是一般我们都用#import,例如 #import “ViewController.h"


因为#import导入同一个头文件多次也只会导入一次(已经导入会被忽略),防止重复导入


OC还有一种用法是@class 类名,这样告诉编译器这是一个类,不要管他的内部细节,这样提高了效率,防止了头文件的循环引用,当然你不能访问这个类的内部细节


Swift也需要导入一些框架,直接import就行,不用#,例如 import Foundation


基本的数据类型


接下来我们来看一下基本的数据类型,我就说一些比较常用的吧,C++的我就不说了。 OC中的数据类型


OC中很多数据类型都有NS前缀,那算因为OC是乔布斯第一次离开苹果后创建的公司NextStep所开发的,所以就有NS


数据类型我只是用一些简单直白的创建方式,其实还有很多种创建方式



我只介绍了一些比较常用的类型,当然还有很多类似C++的地方:


例如NSInteger,无符号的写法是 NSUInteger


NSString,NSArray,NSDictionary是不可变类型,可变类型要加Mutable,例如NSMutableString,NSMutableArray..


还有一些其他的类型例如NSNumber数字类型,可以包装int,float,double等等


接下来看下Swift


Swift的数据类型也差不多,无非就是Int,Float,Double,String这些,但是用起来,一个爽字还形容不了。


因为Swift有类型推导,并且非常屌!!


例如 var str = @“hello world”


编译器便会自动推断str为String类型


Swift中声明类型一般用let,和var,let表示定义常量,var定义变量


var a = 1 把a推导为Int 当然你也可以写上类型 var a: Int = 1


在Swift中可以省略分号,写和不写都行,但定义两个变量放在同一行就要,分隔开嘛


当然Swift对比OC也多了很多东西,例如元组tuple,闭包Closure等,很多用起来很简洁的东西


hello world


接下来就从最简单的开始—hello world


C++


OC


Swift


Swift就是这么简洁,可以直接运行


OC的很多语法也接近C++


至少很多方法都写的很长,但是看起来也很清晰,我这里也不说了


由于我最近在学Swift,接下来介绍一下Swift的一些简单语句,到底有多简洁


for语句


 0 . . < 4 就是 0 ≤ i < 4


 0. . . 4 也可以表示 0 ≤ i ≤ 4


闭包


所有的算法最后简化成一个> 这个>


可以算是一个闭包的超简洁版,它本来是这样的


对,那一串,最后变成了 一个 >


这些只是冰山一角,股市一票而已


Swift学起来的给我的感觉就是简洁,新鲜,爽快!


如何快速学习ios入门语言?


作者列举了入门级IOS开发者需要掌握的知识清单,帮助你从零开始学习IOS开发。


1、基本的 CS 知识


对数据结构和算法有一定基本的了解,肯定会防止开发新手们写代码写的乱七八糟。所以对新手来说,达内IOS培训专家推荐去看Youtube上的哈佛CS50课程,作为入门的开始,这些课程浅显易懂,还十分有意思。


2、Swift 还是 Objective-C


你无需到达能够写这两种语言的技术性博客的水平,或者是到能够教课的程度,但是你还是至少得能用这两种中其一来编程,不用过于频繁的查看语法。API是另外一码事儿,尤其是在 iOS 中,框架每年更新,很多方法也经常被弃用。你要达到独自写类、结构体、循环、函数(类和实例)、分配变量、表达式求值的水平。


Swift 还是很新,除非你进的公司里有频繁的项目更替,否则你就得基本上用 Objective-C。不少公司正决定转向 Swift,如果你就会 Swift 的话,找一个工作也不会特别难。重要的是要对你所选择的那个语言足够熟练,然后至少对另外一个也要熟悉到能读懂代码的程度。


3、框架和 API


达内IOS培训专家不认为你必须能对所有的 iOS API 倒背如流,但是你需要清晰的知道到哪里找起。


•UIKit (UITableView, UIButton, UINavigationController,GestureRecognizers)


•Interface Builder (Storyboards, Segues, and the odd .xib)


•Foundation 类型 (NSArray, NSDictionary, NSString) 以及它们的 Swift 对应(Array, Dictionary 和 String)HTTP API (NSURLSession, 基本的 REST API 概念,用 NSJSONSerializatio n 做 JSON 解析)


•Grand Central Dispatch (GCD, NSOperationQueue)


•数据持久化 (NSCoding, NSUserDefaults, CoreData)


•内存管理 (什么是循环引用,以及 ARC 的基本原理)


4、开发中的设计模式


模式很重要,它让你的开发变得容易、代码变得清晰。要确保你了解基本的设计模式,这些模式在 iOS 的框架中被广泛使用,你在不知道它们的情况下不大可能做出来很多东西。


•代理模式


•模型-视图-控制器模式


•继承


•单例模式


5、熟悉开发环境


如果你还没有一台 Mac 的话,弄一台!如果你没有任何一个 iOS 设备,弄一个!如果你没有使用过或者不熟悉设备的话,为它做开发会很难。同样,如果你没 Mac 写代码的话也很难。


6、UX/UI


通常来说 UX(用户体验)和 UI(交互界面)是由设计师负责的,但是你也应该了解 Apple 的人机交互指南。你应该要了解产品原型和线框图的区别,以及在开发的过程中如何使用它们。


7、工具


你应该熟悉一些常见的开发工具。


•Xcode


•Git 版本控制


 •JIRA 或者 Bugzilla


•CocoaPods


8、作品


事实胜于雄辩。如果你想在面试中表现优异的话,可以把一些简单 app 合在一起(或者更好的是把它们发布在 AppStore 上)。展示出你能够独立完成一个项目的能力。


总结


我是想通过简单的介绍一下OC和Swift让大家了解一下这两种语言,iOS开发就是建立在这两种语言的基础上,无论是OC还是Swift还有很多有趣的语法等着我们去发现。


登录查看更多
0

相关内容

苹果公司在 WWDC 2014 开幕 Keynote 上发布的全新编程语言,具有更多现代化特性,同时容易使用,定位是补充 Objective-C. > Swift is an innovative new programming language for Cocoa and Cocoa Touch. Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project — or for addition into your current app — because Swift code works side-by-side with Objective-C.

Swift - Apple Developer

【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【Manning新书】现代Java实战,592页pdf
专知会员服务
99+阅读 · 2020年5月22日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
算法与数据结构Python,369页pdf
专知会员服务
161+阅读 · 2020年3月4日
吐血整理!140种Python标准库、第三方库和外部工具都有了
炼数成金订阅号
14+阅读 · 2019年7月30日
一文看懂怎么用 Python 做数据分析
大数据技术
24+阅读 · 2019年5月5日
从webview到flutter:详解iOS中的Web开发
前端之巅
5+阅读 · 2019年3月24日
C# 10分钟完成百度人脸识别
DotNet
3+阅读 · 2019年2月17日
一天精通无人中级篇:遥控器协议 S-BUS
无人机
51+阅读 · 2018年12月20日
开发、调试计算机视觉代码有哪些技巧?
AI研习社
3+阅读 · 2018年7月9日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
快乐的迁移到 Python3
Python程序员
5+阅读 · 2018年3月25日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
Arxiv
6+阅读 · 2019年3月19日
Large-Scale Study of Curiosity-Driven Learning
Arxiv
8+阅读 · 2018年8月13日
Arxiv
3+阅读 · 2018年4月3日
Arxiv
3+阅读 · 2018年3月22日
Arxiv
7+阅读 · 2018年2月26日
VIP会员
相关VIP内容
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【Manning新书】现代Java实战,592页pdf
专知会员服务
99+阅读 · 2020年5月22日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
算法与数据结构Python,369页pdf
专知会员服务
161+阅读 · 2020年3月4日
相关资讯
吐血整理!140种Python标准库、第三方库和外部工具都有了
炼数成金订阅号
14+阅读 · 2019年7月30日
一文看懂怎么用 Python 做数据分析
大数据技术
24+阅读 · 2019年5月5日
从webview到flutter:详解iOS中的Web开发
前端之巅
5+阅读 · 2019年3月24日
C# 10分钟完成百度人脸识别
DotNet
3+阅读 · 2019年2月17日
一天精通无人中级篇:遥控器协议 S-BUS
无人机
51+阅读 · 2018年12月20日
开发、调试计算机视觉代码有哪些技巧?
AI研习社
3+阅读 · 2018年7月9日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
快乐的迁移到 Python3
Python程序员
5+阅读 · 2018年3月25日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
相关论文
Arxiv
6+阅读 · 2019年3月19日
Large-Scale Study of Curiosity-Driven Learning
Arxiv
8+阅读 · 2018年8月13日
Arxiv
3+阅读 · 2018年4月3日
Arxiv
3+阅读 · 2018年3月22日
Arxiv
7+阅读 · 2018年2月26日
Top
微信扫码咨询专知VIP会员