39

property以前は、クラス間でデータを渡すために次のように宣言していました。

.h file (interface file)
@property (nonatomic) double topSpeed;

.m file (implementation file)
@synthesize topSpeed;

クラスがなくなりました。interfaceクラス間でデータを渡すにはどうすれば.swiftよいですか?

4

6 に答える 6

1

あなたの質問の少なくとも一部は、特定のクラスのインターフェースを他のクラスに伝達することに関連しているようです。Java と同様に (C、C++、および Objective-C とは異なり)、Swift はインターフェースを実装から分離しません。import他の場所で定義されたシンボルを使用する場合は、ヘッダー ファイルは必要ありません。代わりに、次のようなimportモジュールを作成します。

import Foundation
import MyClass

別のクラスのプロパティにアクセスするには、そのクラスをインポートします。

于 2014-06-03T12:29:48.730 に答える
0

保存されたプロパティとインスタンス変数

Objective-C を使用した経験がある場合は、クラス インスタンスの一部として値と参照を格納する 2 つの方法が提供されていることをご存知かもしれません。プロパティに加えて、インスタンス変数をプロパティに格納された値のバッキング ストアとして使用できます。

Swift は、これらの概念を単一のプロパティ宣言に統合します。Swift プロパティには対応するインスタンス変数がなく、プロパティのバッキング ストアには直接アクセスされません。このアプローチにより、さまざまなコンテキストで値がどのようにアクセスされるかについての混乱が回避され、プロパティの宣言が 1 つの明確なステートメントに簡素化されます。プロパティに関するすべての情報 (名前、型、メモリ管理特性など) は、型の定義の一部として 1 つの場所で定義されます。

スウィフトプログラミングブックから:

    struct FixedLengthRange {
    var firstValue: Int
    let length: Int
    }

    var rangeOfThreeItems = FixedLengthRange(firstValue: 0, length: 3)
于 2014-07-23T21:45:55.127 に答える
0

私は言う: typealiasは、迅速にさらに同等です@synthesize

このリンクを見てください:https://docs.swift.org/swift-book/ReferenceManual/Declarations.html

ここに画像の説明を入力

于 2018-09-16T03:56:50.260 に答える