AppleのARCガイドを読んだ後、私はゆっくりと保持サイクルを把握しようとしていますが、私には明らかではないのは迅速なタイプ推論ではオプションの疑問符や強制アンラッピングクラスのグローバルスコープ内の変数を推測する際の感嘆符。例えばスウィフトタイプ推論には疑問符や感嘆符が必要
:私は次の行に疑問符や説明のポイントを省略した場合
import XCTest
@testable import PassionProject
class ItemManagerTests: XCTestCase {
var sut: ItemManager!
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
sut = ItemManager()
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func tests_ToDoCount_Is_InitiallyZero() {
XCTAssertEqual(sut.toDoCount, 0)
}
func tests_DoneCount_Is_InitiallyZero(){
XCTAssertEqual(sut.doneCount, 0)
}
}
、それはクラスが初期化子を持っていないというエラーがスローされます。
var sut: ItemManager
私の質問があります型推論ではなく、単にこの変数がこの型であると言っていますか?もしそうなら、Xcodeが初期値を与えていないとXcodeがそれをプロパティと考えているのはなぜですか?また、なぜ値を設定しないと、推論された型のコンパイルが強制的に行われないのですか?必要に応じて
は、ここでは一例として使用しているオブジェクトのためのコードであり、より良い理解を得るために、事前にあなたに感謝:
import Foundation
class ItemManager {
let toDoCount = 0
let doneCount = 0
}
割り当てている場合は、明示的にタイプを指定しないでください。推論にその作業をさせてください: 'var sut = ItemManager()' – Alexander