2016-11-19 14 views
0

延長について知りたい。異なっている何内線番号と内線番号との相違点

ケース1

import Foundation 
import Parse 

class Room: PFObject, PFSubclassing { 
    @NSManaged var name: String? 

    static func parseClassName() -> String { 
     return "Room" 
    } 
} 

場合2.

import Foundation 
import Parse 

class Room: PFObject { 
    @NSManaged var name: String? 


} 

extension Room: PFSubclassing { 

    class func parseClassName() -> String { 
    return "Room" 
    } 


} 

?両方とも完璧に動作していますが、どちらが優れているのか、またその理由はわかりますか?

答えて

3

拡張機能を使用すると、サブクラス化することなく機能をクラスに追加(拡張)できます。

func displayQuickAlert(title: String: message: String) { 
    // create a alert VC with title and mesage 
    // add the ok button/action 
    // present the alertVC 
} 

あなたはサブクラスでこれを行った場合は、すべてのあなたを更新する必要があります:

だから、あなたは簡単にタイトル、メッセージ、OKボタンで基本的な警告を表示することができ、あなたがquickAlertFunctionを追加したいと想像あなたのサブクラスから継承するViewControllerがありますが、UIViewControllerの拡張としてこれを行った場合は、何も更新する必要はありません。

一般的な機能をクラスに追加する場合は、特定の変更を追加したい場合は、通常、テキストフィールドを拡張してオートコンプリートなどを追加するとよいでしょう。あなたのサブクラスのインスタンスだけで、すべてのテキストフィールドでグローバルになるようにします。

また、注意すべき最後の事は..あなたは拡張子でプロパティを追加することはできませんが、サブクラス

+0

に_ _「...あなたは拡張子のプロパティを追加することはできません」ことができます。これはのみ_storedに適用されますインスタンスのプロパティ_。たとえば、計算されたインスタンスのプロパティと、拡張の型(静的)プロパティとして追加します。 – dfri

+0

@dfri yeah good shout。私はより具体的でなければならない – Scriptable

+0

ありがとう!私は理解した。それは私に多くの助けになる! :) –

関連する問題