加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – Xcode6中的Swift类与Cocoa Touch Class

发布时间:2020-12-15 02:01:54 所属栏目:百科 来源:网络整理
导读:我是iOS开发的新手,并直接与Swift开始合作。 当我想向项目添加一个新文件时,IDE会向我显示两个文件,这些文件似乎在我迄今为止看过的教程中可互换使用。 他们是“Cocoa Touch Class”和“Swift Class”。 当我创建一个新的Cocoa Touch Class时,这是我得到
我是iOS开发的新手,并直接与Swift开始合作。

当我想向项目添加一个新文件时,IDE会向我显示两个文件,这些文件似乎在我迄今为止看过的教程中可互换使用。
他们是“Cocoa Touch Class”和“Swift Class”。

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

import UIKit

class CtTest: NSObject {

}

当我创建一个新的Swift文件时,我得到:

import Foundation

这两个类的扩展名为.swift

如果我将类定义添加到Swift文件,并按如下所示进行修改:

import UIKit
import Foundation

class SwTest:NSObject
{
}

两个文件之间是否存在差异。

如果是这样,哪些类在哪些情况下是首选的,例如。查看控制器,型号等

谢谢

解决方法

默认情况下,它们放入文件的代码之外的两个不同模板之间没有区别。像你注意到的,它们都有相同的扩展名,它们都是纯文本文件 – 编译器不会对它们有任何不同的看法。

一般的经验法则是仅在该文件中需要导入模块 – 基本上如果否则导致编译错误。如果您尝试使用它们中的类型,则会导致编译器错误。

基础

基础基本上是在Objective-C中实现的苹果开发标准库。它包括NSArray,NSString和NSDictionary等数据类型。但是,Swift为这些数据类型提供替代:数组,字符串和字典。您只需要在试图与Objective-C API交互的文件中导入Foundation。然而,由于所有现有的API都是在Objective-C中编写的(因为Swift是如此之新),所以您必须在几乎所有文件中导入基础,除了基本的域对象。

UIKit的

UIKit实际上包括Foundation。如果您导入UIKit,则不需要也导入Foundation。 UIKit是特定于iOS界面的标准API的集合。它包括像UITableView和UIViewController这样的控件的视图。每当在iOS应用程序的UI上工作时,您都需要重视。

Cocoa Touch Class

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读