비디오: Learning iOS: Create your own app with Objective-C! by Tianyu Liu 2024
iOS 앱용 인스턴스 변수를 선언하려면 각 인스턴스마다 자체 인스턴스가 있어야합니다. (즉, 각 인스턴스는 이러한 변수의 복사본을 얻습니다.)
PostfixCalculator 클래스에서 인스턴스 변수는
-
표현식입니다.) StackOfInteger 객체에 대한 포인터 (또한 포인터) 인 NSString 객체
-
calculatorStack
변수의 범위 는 변수의 위치를 정의합니다 네 가지 옵션이 있습니다:
-
protected: 인스턴스 변수가 보이고 클래스와 모든 서브 클래스의 모든 인스턴스 메소드에서 직접 참조 (즉, 사용) 될 수 있습니다.
protected가 기본 범위입니다. > private:이 변수는 정의 된 클래스에서만 사용됩니다.
-
public:이 변수는 볼 수 있으며 우리가 될 수 있습니다 다른 클래스 또는 메소드에서 ed.
-
-
PostfixCalculator의 예제를 보자:
@interface PostfixCalculator: NSObject {@ public NSString * expression; @private StackOfInteger * calculatorStack;} -d
여기에서 expression은 public 인스턴스 변수로 선언되지만 calculatorStack은 private로 선언됩니다.
모든 변수를 보호 된 상태로두고 클래스 계층 외부에서 볼 수있게하려는 변수에 대한 접근 자 메서드를 작성합니다.
-
더 많은 액세스를 제어하려면:
-
변수를 명시 적으로 private로 선언하십시오.
-
클래스 외부에서 액세스 할 수 있도록하려는 변수에 대한 접근 자 메서드를 제공합니다.
-
가능한 경우 변수에 주석을 달지 말고 공개 및 패키지로 보관하십시오.
덧붙여서, 공용 범위의 인스턴스 변수에 액세스하려면 멤버 연산자 (일명 화살표 연산자 ->)에 대한 포인터를 사용합니다. PostfixCalculator 인터페이스의 변수 표현식이 다음과 같이 선언됩니다.
-
@public NSString * expression;
당신은 다음과 같이 접근합니다:
myExpression = myCalculator-> expression;
반면에 변수가 private (또는 protected의 기본값)으로 선언되면 다음과 같이 접근 자 메서드를 사용하여 값을 가져와야합니다.
NSString * myExpression = [myCalculator getExpression];
Mac의 현재 gcc 컴파일러와 같은 일부 Objective-C 컴파일러는 아직 개인 범위를 시행하지 않습니다.대신 선언 된 클래스 외부에서 private로 선언 된 변수를 사용하는 경우에만 경고를 생성합니다. 경고는 다음과 유사합니다.
경고: 인스턴스 변수 …는 @private입니다. 이것은 앞으로는 어려운 오류가 될 것입니다.
한편, Xcode의 컴파일러는 옳은 일을하고 있습니다: 인스턴스 변수 …는 private입니다.