2016-06-18 3 views
-2

オブジェクトを保持するタイプを選択する必要があります。しかし、私はいくつかの助けが必要です。私のオブジェクトが3プロパティ持つべきiOS対応のオブジェクトタイプを修正する

    • 小さな
    • 中最大

    をそれらのそれぞれは、私のオブジェクトはプロパティを優先している必要があります。またURL

    を開催します。どちらが小、中、最大として割り当てられるか。また、Preferredは選択したプロパティからURLを返す必要があります。例えば

    は、私が割り当てた場合:

    small = url1 
    medium = url2 
    max = url3 
    

    //をここにも、私はグローバル設定クラスを持っています。そして、私はpreferred - maxのURLから戻ることを選ぶべきです。そして、すべてのインナーナンバーのためには、maxを返すべきです。

    Class.preferred = Type.max //something like that 
    print(instanse.preferred) //printed url3 
    

    どうすればアーカイブできますか?ここでクラスを使用することはできませんが、列挙型でアーカイブすることはできますか? (私が正しくあなたの質問を理解していれば)

    enum VideoType: String { 
    case min 
    case med 
    case max 
    } 
    
    
    class VideoInstanse { 
    var min: VideoType 
    var med: VideoType 
    var max: VideoType 
    
    static var preferred:VideoType! 
    
    init(dictionary: [Int : String]) { 
        min.rawValue = dictionary[1] //error 
        med.rawValue = dictionary[2] 
        max.rawValue = dictionary[3] 
    } 
    } 
    
    +0

    正確に行い構造体やクラスを作成することでどこに問題がある、ということ? – luk2302

    +0

    グローバル設定に関するポイントを追加しました。ここに問題があります –

    +0

    最後の編集は理にかなっていません。なぜあなたはクラスを使用できませんか?あなたは何をしようとしているのですか? – chrs

    答えて

    1

    あなたはこのケースでは列挙型を使用してに興味があるかもしれません動作しません

    サンプル

    enum Endpoint: String { 
        var baseURLString: String { 
        get { 
         return "https://myurl.com?size=".appending(self.rawValue) 
        } 
        } 
    
        case small 
        case medium 
        case max 
    
        var url: URL? { 
        return URL(string: baseURLString) 
        } 
    } 
    
    
    print(Endpoint.small.url!) 
    print(Endpoint.medium.url!) 
    print(Endpoint.max.url!) 
    

    出力は次のようになります。

    https://myurl.com?size=small 
    https://myurl.com?size=medium 
    https://myurl.com?size=max 
    
    +0

    こんにちは、私はenumサンプルを追加しました、私の質問を確認してください –

    0

    構造、多分?

    struct Size { 
        var small : NSURL = NSURL() 
        var medium : NSURL = NSURL() 
        var large : NSURL = NSURL() 
    } 
    class VideoInstanse { 
        var properties = Size() 
    
    
        func someMethod() { 
        self.properties.small = url1 
        self.properties.medium = url2 
        self.properties.large = url3 
        } 
    } 
    

    また、そのようにどこか他のクラスの外にそれを使用することができます。

    var instance = VideoInstance() 
    instance.properties.small... 
    // and so on... 
    
    関連する問題