iPhone和iPad

软件支持

iOS

  • 2007年发布
  • 2008年发布开发者SDK
  • iOS当前的版本为:10.2
  • 官方开发者论坛:Apple Developer Forums
  • 官方开发者教程文档资源库:Resources

硬件支持

  • A10处理器(iPhone7/7+)
  • A9处理器(iPhone6s/6s+)
  • A8处理器(iPhone6/iPhone6+)
  • A8X处理器(iPad Air2)
  • A7处理器(iPad Mini3),A7开始处理器为64位
  • 运动辅助处理器(iPhone5s和iPad Air之后)
  • 3D Touch(iPhone6s/6s+之后)
  • 亮度传感器
  • 靠近设备感应器
  • 多点触控(multi-touch)屏幕
  • 加速器
  • 数字罗盘
  • 三轴陀螺仪
  • 辅助GPS(AGPS)
  • 气压计(iPhone 6和iPad Air2之后)
  • 指纹传感器(iPhone 5s和iPad Air2之后)
  • 压力传感器(iPhone 6s and iPhone 7)
  • 触觉反馈引擎(iPhone 6s and iPhone 7)
  • 前后摄像头(模式可调分辨率)

Apple Watch和Apple TV

Apple Watch

软件支持

  • WatchOS(最前版本WatchOS 3.0)

硬件支持

  • 处理器
    • 苹果S1单片机
    • 苹果S2单片计算机
  • 传感器
    • 环境光传感器
    • 加速传感器和陀螺仪
    • 心率传感器
    • GPS(只支持Series2)
  • 数据连接
    • 蓝牙4.0(LTE)
    • Wifi 802.11b/g/n 2.4 GHz(仅限在系统中使用)
  • 充电
    • 电感应充电

Apple TV(2015)

软件支持

  • Apple tvOS
  • SDK available for Apps Development

硬件支持

  • 处理器(A8)
  • 遥控传感器
    • 加速器和陀螺仪
    • 触摸传感器
    • Siri麦克风
  • 数据连接
    • 蓝牙4.0 (LE)
    • 红外线接收器
    • 820.11交流Wifi天线系统
    • 10/100 BASE-T以太网
    • USB-C服务和支持

iOS SDK

2009年iPhone SDK 3.0发布,现在已经更新到iOS SDK 10.0。

iOS SDK 9.0/9.1特性

  • Apple Pay
  • App应用程序扩展
  • Touch ID指纹识别授权认证
  • Metal游戏引擎
  • HealthKit,HomeKit,iPad多任务切换改进功能
  • 3D Touch搜索GameplayKit
  • App应用瘦身
  • 从左到右的语言支持
  • Swift改进

iOS SDK 10.0新特性

  • SiriKit
  • Callkit
    • 集成VOIP
    • 呼叫屏蔽
  • Homekit改进(在控制中心组织Homekit配件)
  • Apple Pay改进
  • 消息应用程序集成
  • Widget改进

iOS技术架构

  • Cocoa Touch框架层
    • UI组件
    • 触摸处理和事件驱动
    • 系统接口
  • Media媒体层
    • 音频视频播放
    • 动画
    • 2d和3d图形
  • Core Servie核心服务层
    • 底层特性
    • 文件
    • 网络
    • 位置服务等
  • Core OS系统层
    • 内存管理
    • 底层网络
    • 硬件管理

新型语言Swift(从OC到Swift)

Swift是一门新型语言,借鉴了Haskell,Ruby,Python,C#等语言特性,看上去偏脚本化,swift仍然支持已有的Cocoa和Cocoa Touch框架。

Swift的主要新特性:

  • 安全【严格的类型检查】
  • 强大【高度优化的LLVM编译器】
  • 新型【借鉴多种语言特性,表达更简单精确】

从基本的ViewController代码窥探OC和Swift区别

Swift

// ViewController.swift
import UIKit
class ViewController: UIViewController {
    @IBOutlet weak var label1: UILabel!
    @IBAction func button1(sender: AnyObject) {
        label1.text = "Hello iOS!!!"
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view,typically from a nib.
    }
    override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning()
        // dispose of any resources that can be recreated.
}

Objective-C

// ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (weak,nonatomic) IBOutlet UILabel *label1; - (IBAction)button1:(id)sender;
@end
// ViewController.m
#import "ViewController.h" 
@interface ViewController () @end
@implementation ViewController @synthesize label1 ;
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view,typically from a nib.
}
- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning];
    // dispose of any resources that can be recreated.
}
- (IBAction)button1:(id)sender {
    label1.text = @"Hello iOS!!!" ;
}
@end

Swift类的定义

整个类文件都定义在一个swift文件内:

import Foundation
class Ball {
    // 变量
    var centerX: Float
    var centerY: Float
    var radius: Float
    // 初始化方法
    init(centerX:Float,centerY:Float,radius:Float) {
        self.centerX = centerX
        self.centerY = centerY
        self.radius = radius
    }
    // 实例方法
    func move(moveX:Float,_ moveY:Float) {
        self.centerX += moveX
        self.centerY += moveY
    }
    // 类方法
    class func aClassMethod() {
          print("I am a class method")
    }
}

...

// 创建对象
var ball1 = Ball(centerX: 7.0,centerY: 5.0,radius: 6.0)
// 方法调用
ball1.move(moveX:1.0,1.0)
Ball.aClassMethod()

流程控制语句

Objective-c

// 条件判断
if (a < b) {
    // Do something here
} else {
    // Do another thing here
}
// for循环
for (int i = 0; i < 10; i++){
    // Do something here
}
// while循环
while (count < 10) {
    // Do something here
}
// do-while循环
do {
    // Do something here
} while (count < 10);

Swift

// 条件判断
if a < b {
    // Do something here
} else {
    // Do another thing here
}
// for循环
for int i = 0; i < 10; i++{
    // Do something here
}
// while循环
while count < 10 {
    // Do something here
}
// repeat-while循环
repeat {
    // Do something here
} while count < 10

基本数据类型

String字符串

Objective-C

Nsstring * Str = @"string"; 
Nsstring * formatStr = [Nsstring stringWithFormat:@"%@and float%f",Str,3.1415"]; 

Swift

// 可变字符串
var Str = "string"
var Str:String = "string"
var Str = String("string")
// 不可变字符串
let Str = "string"
let Str:String = "string"
let Str = String("string")

数组Array和MultableArray

Objective-C

// 静态数组
NSArray *array = [[NSArray alloc] initWithObjects: ball1,ball2,nil];
array[0].radius = 10;
// 可变数组
NSMutableArray *mArray = [[NSMutableArray alloc] initWithCapacity: 2];
[mArray addobject:ball1];
[mArray addobject:ball2];
Ball *newball = [mArray objectAtIndex:1];
[mArray removeObjectAtIndex:1];

Swift

// 静态数组
let myArray: Array<Ball> = [ball1,ball2]
let myArray: [Ball] = [ball1,ball2]
let myArray = [ball1,ball2]
myArray[0].radius = 10

// 可变数组
var myArray: [Ball] = []
myArray.append(ball1)
myArray.append(ball2)
var newBall = myArray[1];
myArray.remove(at: 0)

UIImageView

Objective-C

UIImageView *myImage = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@”tiger.png”]];
[self.view addSubview:myImage];
myImage.center = CGPointMake(150,200);
myImage.frame = CGRectMake(0,0,50,25);

Swift

let myImage = UIImageView(image: UIImage(named: "tiger.png"))
view.addSubview(myImage)
myImage2.frame = CGRect(x:0,y:0,width:50,height:25)
myImage2.center = CGPoint(x:150,y:200)

… …

【IOS沉思录】开发软硬件SDK支持以及Swift语言的更多相关文章

  1. HTML5 播放 RTSP 视频的实例代码

    目前大多数网络摄像头都是通过 RTSP 协议传输视频流的,但是 HTML 并不标准支持 RTSP 流。本文重点给大家介绍HTML5 播放 RTSP 视频的实例代码,需要的朋友参考下吧

  2. 利用Node实现HTML5离线存储的方法

    这篇文章主要介绍了利用Node实现HTML5离线存储的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. 详解如何通过H5(浏览器/WebView/其他)唤起本地app

    这篇文章主要介绍了详解如何通过H5(浏览器/WebView/其他)唤起本地app的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  4. H5混合开发app如何升级的方法

    本篇文章主要介绍了H5混合开发app如何升级的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  5. AmazeUI 折叠面板的实现代码

    这篇文章主要介绍了AmazeUI 折叠面板的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  6. HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码

    这篇文章主要介绍了HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

  7. HTML5 WebSocket实现点对点聊天的示例代码

    这篇文章主要介绍了HTML5 WebSocket实现点对点聊天的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  8. Html5 video标签视频的最佳实践

    这篇文章主要介绍了Html5 video标签视频的最佳实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  9. html5唤起app的方法

    这篇文章主要介绍了html5唤起app的方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. HTML5拍照和摄像机功能实战详解

    这篇文章主要介绍了HTML5拍照和摄像机功能实战详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部