1

次の拡張機能を作成しましたUIView

import UIKit

extension UIView {

    var frameHeight : CGFloat {

        get {
            return self.frame.size.height
        }
        set(newHeight) {
            self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y,self.frame.size.width, newHeight)
        }
    }
}

次に、これを自分のメソッド内で使用しましたUIView

class MyView: UIView {

   func updateHeight() {

        self.frameHeight = 200.0
        setNeedsDisplay()
    }
}

コンパイルエラーが発生しました:

While emitting IR SIL function @_TFC15Simple15MyView10updateHeightfS0_FT_T_ for 'updateHeight' at /MyView.swift:88:5
<unknown>:0: error: unable to execute command: Segmentation fault: 11
<unknown>:0: error: swift frontend command failed due to signal (use -v to see invocation)
Command /Applications/Xcode6-Beta3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 254

行をコメントアウトするself.frameHeight = 200.0と、コンパイルエラーはなくなりました。

バグですか?それとも私は何か間違ったことをしましたか?ありがとう。

4

2 に答える 2

1

プレイグラウンドで実行すると機能しますが、明らかに問題はありません。

いずれにせよ、それコードのバグであっても、コンパイラをクラッシュさせるべきではありません。Appleでバグレポートを作成する必要があると思います。

于 2014-07-14T10:33:51.480 に答える
0

funcas として宣言する必要がありますmutating

于 2014-08-03T19:41:04.180 に答える