文档章节

Swift和Objective-C的不同

宁音雨雾
 宁音雨雾
发布于 2016/05/11 11:23
字数 258
阅读 59
收藏 0

 


声明类

    
    Objective-C
    
    [<#Content#> class]
    
    ------------------------------------------------------------------------
    
    Swift
    
    <#content#>.self
    

打印一个对象所属类型

    
    Objective-C
    
    // 打印一个对象所属类型
    NSLog(@"%@",[object class]);
    
    Swift
    
    // 打印一个对象所属类型
    print("返回的类型是:--->\(<#object#>.dynamicType )");
    

拿到AppDelegate


    Objective-C
    
    // 拿到 AppDelegate
    AppDelegate *tempAppDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    
    -----------------------------------------------------------
    
    Swift
    
    // 拿到 AppDelegate
    let tempAppDelegate = UIApplication .sharedApplication().delegate as! AppDelegate;
    

反序列化

    
    Objective-C
    
    // 苹果自带反序列化 返回类型id
    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingAllowFragments error:&error];
    
    -------------------------------------------------
    
    Swift
    
    do {
        
        // 苹果自带反序列化
        let dict = try NSJSONSerialization.JSONObjectWithData(jsonData!, options: .AllowFragments)
        
        // 继续下一步操作
        
    } catch {
        
        print(error);
    }
    

类型转换和判断

    
    Objective-C
    
    // 类型判断
    if ([<#object#> isKindOfClass:[<#Class#> class]]) {
        
        // 类型转换
        <#Class#> *<#Name#> = (<#Class#> *)<#object#>;
        
    }
    
    -------------------------------------------------
    
    Swift

    // 判断 类型
    if <#object#>.isKindOfClass(<#Class#>) == false {
        
        return;
        
    }
    
    // 类型转换
    let <#Name#> = <#object#> as! <#Class#>;
 
    

dealloc/控制器被释放

    
    Objective-C
    // 控制器被释放时 调用此方法
    - (void)dealloc {
        printf("控制器释放");
    }
    -------------------------------------------------
    Swift
    // 析构器方法 类似于Object-C的 dealloc
    deinit {
         print("控制器释放");
    }
    

获取字符串长度

    Objective-C

    // 获取字符串长度
    string.length
    -------------------------------------------------
    Swift
    
    // 获取字符串长度
    string.characters.count

 

© 著作权归作者所有

宁音雨雾
粉丝 55
博文 312
码字总数 48631
作品 0
东城
程序员
私信 提问
在同个工程中使用 Swift 和 Objective-C(Swift 2.0更新)

本节包含内容: Mix and Match 概述(Mix and Match Overview) 在同个应用的 target 中导入(Importing Code from Within the Same App Target) 在同个 Framework 的 target 中导入(Impor...

法斗斗
2016/03/01
7
0
《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之

《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之Swift与Objective-CAPI映射 原创文章,欢迎转载。转载请注明:关东升的博客 Swift与Objective-C API映射 在混合编程...

智捷课堂
2016/02/26
44
0
Swift 3.0 及展望:彻底的泛型、精简的语言

2015 年 12 月 3 日,Swift 正式开源。同时,官方也公布了 Swift 3 的最新消息,即 Swift 3 将会在 2016 年秋天发布。 API 设计指南与 Swift 中 Objective-C 的导入 Swift 3 的 API 设计指南...

oschina
2015/12/24
16.7K
30
《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之Swift与Objective-CAPI映射

原创文章,欢迎转载。转载请注明:关东升的博客 Swift与Objective-C API映射 在混合编程过程中Swift与Objective-C调用是双向的,由于不同语言对于相同API的表述是不同的,他们之间是有某种映...

tony关东升
2018/06/26
0
0
初创公司选择 Swift 而不是 Objective-C 的七个原因

在我们最后一篇博客中,我们认为 Swift 将成为最流行的移动应用开发趋势之一,这将会在 2017 年得到验证,这是必须的!如果你对 iOS 世界保持时刻关注,你一定知道 Swift 在 2016 年 12 月份...

oschina
2017/02/09
5.7K
28

没有更多内容

加载失败,请刷新页面

加载更多

在Linux下使用linuxdeployqt发布Qt程序

目录 一、简介 二、安装linuxdeployqt 三、配置 qt 的环境变量 四、打包应用程序 五、编写linux桌面图标启动(可选步骤) 六、编写开机脚本 runApp.sh 七、打包成deb包 八、扩展 回到顶部 一...

shzwork
23分钟前
4
0
Linux进程管理

计算机硬件层面之上是操作系统,狭义的操作系统主要指系统内核,内核有以下作用:进程管理、文件系统、网络管理、内存管理、驱动程序、安全功能。内核可以将用户无法操作的底层硬件接口进行抽...

lhdzw
昨天
4
0
Java13的新特性

Java语言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的新特性 Java10的新特性 Java11的新特性 Java12的新特性 Java13的新特性 Java14的新特性 序 本文主要讲述...

go4it
昨天
7
0
IDEA 配置Springboot项目热部署

实现的方式概述 注意以下的热部署方式在IDEA是默认没有打开自动编译的,手动编译需要快捷键(Ctrl+Shift+F9),自动编译的修改配置如下:(注意刷新不要太快,会有1-2秒延迟) File-Settings-C...

小强的进阶之路
昨天
9
0
免费数据分析工具:secsoso

前段时间思考了理想数据分析平台,之后我们根据这个思路开发了spl语言并提供了一个数据分析平台,这个平台主要用在搜索ES,数据库索引中的数据。但后来发现对文件的事后处理也是个非常重要的...

赛克蓝德
昨天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部