실제로 코드 바로 앞에 설명되어 있습니다.
저장되는 단순 속성 외에도 속성에는 getter 및 setter가있을 수 있습니다.
class EquilateralTriangle: NamedShape {
...
다른 클래스가 해당 경계 변수를 얻으려고 할 때 다음을 수행합니다.
let someVar = myTriangle.perimeter
... 이것은 다음과 같습니다.
get{
return 3.0 * self.sideLength
}
따라서 기본적으로 호출하는 컨트롤러가 다음을 수행 한 것과 같습니다.
let someVar = 3.0 * myTriangle.sideLength
다른 개체에서 변수 를 설정 하면 다음과 같습니다.
myTriangle.perimeter = 100
set{}
블록 의 코드를 호출합니다 .
set {
sideLength = newValue / 3.0
}
따라서 변수를 설정하는 클래스가 다음을 수행 한 것과 같습니다.
myTriangle.sideLength = 100/3.0
정말 편리 합니다. 항상 3으로 나누거나 곱할 필요없이 다른 코드에서 이것을 호출 할 수 있습니다. 왜냐하면 변수를 설정하기 직전과 변수를 얻기 직전에 이루어지기 때문입니다.
Swift에서 우리는 얻을 때 계산되고 설정 될 때 뭔가를 할 수있는 속성을 가질 수 있습니다. Objective-C에서도이 작업을 수행 할 수 있습니다.
// .h
@property (nonatomic) double perimeter;
//.m
- (double)perimeter
{
return self.sideLength * 3.0;
}
- (void)setPerimeter:(double)perimeter
{
self.perimeter = perimeter; // In Swift, this is done automatically.
self.sideLength = perimeter / 3.0;
}