Swift类与Xcode6中的Cocoa Touch类

 大帅哥明日夜 发布于 2022-12-31 15:28

我是iOS开发的新手,直接使用Swift.

当我想向项目中添加一个新文件时,IDE会向我提供两个文件,这些文件在我到目前为止看到的教程中似乎可以互换使用.它们是"Cocoa Touch Class"和"Swift Class".

当我创建一个新的Cocoa Touch类时,这就是我得到的(取决于继承的类)

import UIKit

class CtTest: NSObject {

}

当我创建一个新的Swift文件时,我明白了: -

import Foundation

这两个类的扩展名是.swift

如果我将类定义添加到Swift文件并按如下方式修改它: -

import UIKit
import Foundation

class SwTest:NSObject
{
}

这两个文件之间是否有任何差异.

如果是这样,哪些类在哪些场景中是首选的,例如.查看控制器,型号等

谢谢

1 个回答
  • 除了默认情况下放入文件的代码之外,两个不同的模板之间没有区别.就像你注意到的那样,它们都具有相同的扩展名,并且它们都是纯文本文件 - 编译器不会对它们进行任何不同的处理.

    一般的经验法则是只在你需要的时候导入一个模块 - 基本上如果你得到编译错误.如果您尝试使用它们中的类型,则会因为缺少导入而出现编译器错误.

    基础

    Foundation基本上是Apple开发标准库,在Objective-C中实现.它包括NSArray,NSString和NSDictionary等数据类型.但是,Swift提供了这些数据类型的替换:Array,String和Dictionary.您应该只需要import Foundation尝试与Objective-C API交互的文件.但是,由于所有现有的API都是用Objective-C编写的(因为Swift是如此新的),所以除了基本域对象之外,几乎所有文件都必须导入Foundation.

    UIKit的

    UIKit实际上包括基金会.如果导入UIKit,则无需导入Foundation.UIKit是特定于iOS界面的标准API的集合.它包括UITableView和UIViewController等控制器之类的视图.每当处理iOS应用程序的UI时,您都需要重要.

    Cocoa Touch Class

    此模板对于从UIKit继承类并可能让Xcode为您生成接口构建器文件非常有用.如果您不需要这些东西,您应该只使用Swift类模板.如果你真的需要,只有你的对象继承自NSObject(如果你需要能够使用Objective-C中的Swift类).如果你不从NSObject继承,那么编译器可以进行额外的优化,它避免了Objective-C运行时的一些较慢的部分.

    2022-12-31 15:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有