2015-04-18 74 views
6

我一直在學習Swift語言一段時間後,我遇到了一個基本問題,即可可觸摸類和普通Swift類的文件模板之間的基本區別是什麼?有人可以提供任何基本的差異和例子嗎?我知道他們是不同的,因爲他們每個人都有創建文件的選項。可可觸摸類和普通的swift類有什麼區別?

+0

這個問題太寬而不能得到堆棧溢出一個很好的答案。你能縮小你的問題到你正在解決的具體問題嗎?您可能需要查看[Swift In Flux](https://github.com/ksm/SwiftInFlux)中包含一些差異的長列表。 –

+0

你的問題與「2根桔子有什麼區別?」這個問題是可比的。沒有指定類/桔子,沒有人可以告訴你區別。最好的答案是在文檔中查看它們並查看Apple寫入的內容。 – d00dle

+0

@ d00這就是對的。我知道它們是不同的,因爲它們是創建文件的不同選項,但它們是相同的。只是想了解它們在功能和實現水平上的差異 –

回答

20

TL; DR:它們不是不同類型的類。他們只是不同的文件模板。


根據您的意見:

我知道他們是怎麼把不同的是,他們創建的文件不同的選擇,但他們卻是相同的。

他們不是雖然不同的選項。

enter image description here

我們可以創建一個「可可觸摸類」或「雨燕文件」(或7級不同的選項)。 「Swift 」不是一個選項。

所以...有了這個想法,這兩個選擇的區別?

如果我們選擇Swift文件,下一個對話框要求我們給我們的文件一個名字並選擇一個保存位置。當我們從這裏單擊「創建」時,我們只需用我們選擇的名稱獲得一個空的(ish)Swift文件。

所有這一切放入文件是樣板的版權信息和import Foundation行:

// 
// File.swift 
// Swift_iOS 
// 
// Created by Nick Griffith on 4/18/15. 
// Copyright (c) 2015 nhg. All rights reserved. 
// 

import Foundation 

所創建的整個文件。


如果我們選擇可可觸摸類,但是,我們得到了一個完全不同對話框。

我們被要求給我們的班級一個名字,選擇它的基類是什麼,並選擇一種語言。此外,如果我們的基類是某種視圖控制器,我們將會給出創建伴隨XIB文件的選項(並且如果我們正在執行iOS應用程序,請選擇它的用途)。

enter image description here

當我們點擊下一步,我們給出什麼文件名,我們的新文件將有一個選擇,但我們仍然得到來接我們的保存位置。然而,一旦我們真正創建了這個文件,我們就擁有了一組完全不同的代碼。什麼確切的樣板代碼,我們得到完全取決於我們的基類是什麼,但無論如何,我們的類的框架始終是到位:

// 
// MyViewController.swift 
// Swift_iOS 
// 
// Created by Nick Griffith on 4/18/15. 
// Copyright (c) 2015 nhg. All rights reserved. 
// 

import UIKit 

class MyViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


    /* 
    // MARK: - Navigation 

    // In a storyboard-based application, you will often want to do a little preparation before navigation 
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     // Get the new view controller using segue.destinationViewController. 
     // Pass the selected object to the new view controller. 
    } 
    */ 

} 
相關問題