文档章节

Swift和Objective-C的不同

宁音雨雾
 宁音雨雾
发布于 2016/05/11 11:23
字数 258
阅读 58
收藏 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
43
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.6K
28

没有更多内容

加载失败,请刷新页面

加载更多

如何设计抗住100亿次请求的抢红包系统?(附GitHub代码)

1. 前言 前几天,偶然看到了 《扛住100亿次请求——如何做一个“有把握”的春晚红包系统”》一文,看完以后,感慨良多,收益很多。 正所谓他山之石,可以攻玉,虽然此文发表于2015年,我看到...

Java程序员之家
38分钟前
3
0
动图+源码,演示Java中常用数据结构执行过程及原理

最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList LinkedHashMap中的双向...

Java技术剑
今天
4
0
怎样在ps中制作对话气泡?一招教你轻松解决

PS是在工作中经常使用的平面设计软件,利用ps可以实现很多操作。换天,换发色,添加亮灯等操作都是比较常见的,今天将为大家分享怎样在ps中制作对话气泡的方法,希望能给大家带来帮助。 绘制...

干货趣分享
今天
2
0
EDI 电子数据交换全解指南

EDI(Electronic Data Interchange,电子数据交换)技术使得企业与企业(B2B)实现通信自动化,帮助交易伙伴和组织更快更好地完成更多工作,并消除了人工操作带来的错误。从零售商到制造商、物...

EDI知行软件
今天
3
0
CentOS7的LVM动态扩容

# 问题 CentOS7上面的磁盘空间有点紧张,需要扩容。 解决 查询当前磁盘状态 [root@xxx ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTfd0 2:0 1 4K ...

亚林瓜子
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部