ホーム 技術ログ

extenstionで変数宣言したらExtensions may not contain stored properties

2017年11月2日

環境

  • swift
  • swift3
  • xcode
  • xcode9
  • Extensions may not contain stored properties
  • struct
  • extension
  • stored properties

説明

Swiftでextensionするときvar宣言するとExtensions may not contain stored propertiesとエラーが出ます。stored propertiesはextensionには宣言できません。つまり、値がある変数は定義できないんです。値のある変数を定義したければ、structを使いましょう。

別ファイルにextensionを定義する

スクリーンショット 2017-11-02 15.00.15.png

Extensions.swift
//
//  Extensions with stored properties.swift
//  Extensions with stored properties
//
//  Created by ryosuke-hujisawa on 2017/11/02.
//  Copyright © 2017年 ryosuke-hujisawa. All rights reserved.
//

import Foundation

extension ViewController {

    struct extensionStruct {
        //structの中であればvar定義できる
        var extensionVar = "extensionVarString"
    }
}

ViewControllerから呼び出す

ViewController.swift
//
//  ViewController.swift
//  Extensions with stored properties
//
//  Created by ryosuke-hujisawa on 2017/11/02.
//  Copyright © 2017年 ryosuke-hujisawa. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let instanceStruct = extensionStruct()
        print(instanceStruct.extensionVar)
    }

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

参考

Swiftで構造体とクラスを使い分ける方法(ポイント)
extenstionでの変数宣言

TECHNICAL MASTER はじめてのiOSアプリ開発 第2版 Xcode 8+Swift 3対応【電子書籍】[ 長谷川智希 ]

Pocket
LinkedIn にシェア

エンジニアにおすすめできる本

Card image cap
リーダブルコード

より良いコードを書くためのシンプルで実践的なテクニック

Card image cap
Webを支える技術

HTTP,URI,HTML,そしてREST

Card image cap
誰でもPythonで作れる

儲かるAIとソフトウェアの作り方

Card image cap
プログラマが知るべき97のこと

現場で使える実践哲学のマスターピース

Card image cap
情熱プログラマー

時代を超えて。ソフトウェア開発者の幸せな生き方

Card image cap
アジャイルサムライ

プログラミング達人開発者への道

Card image cap
Rubyを作った男 まつもとゆきひろ

コードの世界 スーパー・プログラマになる14の思考法

ご提供 sponsor
 

Meee!(ミー)は、ビジネスからプライベート利用まで、個人のスキルを気軽に売り買いできるスキルマーケットです。カテゴリや居住地から、検索することが可能です。

 

ランゲージエクスチェンジは、ネイティブスピーカーと気軽にマッチングできる言語交換プラットフォームです。あなたの地元に住む外国人を探したり、留学や海外移住の前に、現地のネイティブスピーカーと繋がることもできます!

宣伝
 

りょすけトークchは、仕事や私生活をより豊にするYouTubeチャンネルです。文献(本、映画、論文)から役に立つ情報をまとめ、生涯にわたり役に立つ哲学をお届けしています。是非、チャンネル登録してみてね

-ホーム, 技術ログ
-, , ,

Copyright© offブログ! , 2021 All Rights Reserved Powered by AFFINGER5.