소셜 미디어 IOS 응용 프로그램에서 선언 된 속성을 사용하는 방법 -

IOS 응용 프로그램에서 선언 된 속성을 사용하는 방법 -

차례:

비디오: Learning iOS: Create your own app with Objective-C! by Tianyu Liu 2024

비디오: Learning iOS: Create your own app with Objective-C! by Tianyu Liu 2024
Anonim

속성 및 인스턴스 변수 액세스 및 접근자는 종종 iOS 앱 프로그래머는 속성의 고유 한 특성과 실제로 작동하는 방식을 이해해야합니다.

메소드 는 일을 끝내기 위해 객체에 메시지를 보내는 것과 관련이 있지만, 속성 은 객체의 상태와 관련이 있습니다. 프레임 워크와 다른 객체는 속성에서 찾은 것을 기반으로 동작합니다 (따라서 속성을 변경하여 객체 비헤이비어를 수정할 수 있습니다).

오브젝트의 색상이나 윈도우의 루트보기 컨트롤러와 같은 오브젝트의 상태에 대해 알고 싶을 수도 있습니다.

뷰와 모델 사이의 다리 역할을하는 앱의보기 컨트롤러는 데이터를 가져 와서 업데이트를 보내기 위해 모델 개체를 찾을 수 있어야합니다. 이 모든 작업은 속성을 사용하여 수행됩니다. 속성은 다음과 같습니다.

@property (강하고 비 구조) IBOutlet UIImageView * car;

그러나 모든 부동산이 아울렛이 아닙니다. RTAppDelegate를 선택하는 경우. h 파일을 열면 프로젝트 속성에

@property (강하고 비 구조) UIWindow * 윈도우;
보시다시피 속성의 순서 (강하고 비 원자 대 비 원자, 강함)는 중요하지 않습니다.

선언 된 속성을 구성하는 것

선언 된 속성은 선언과 구현이라는 두 부분으로 구성됩니다.

선언은 @property 키워드를 사용하고 선택적으로 괄호로 묶인 속성 집합, 유형 정보 및 속성 이름을 사용합니다.

속성에 대한 액세스는 접근 자 메서드에 의해 구현됩니다 (속성을 선언하는 클래스 내에서 인스턴스 변수와 마찬가지로 속성에 직접 액세스 할 수 있음). 자신 만의 액세서 메소드를 작성하거나 컴파일러에서 직접 수행 할 수 있습니다.

속성과 연결된 getter 및 setter 메서드의 기본 이름은 getter에 대한

whateverThePropertyNameIs 및 setter에 대한 setWhateverThePropertyNameI: 입니다. trip의 경우 getter 메소드는 trip이고 setter 메소드는 setTrip:입니다. appDelegate에서 여행 속성에 액세스하려면

AppDelegate * appDelegate = [[UIApplication sharedApplication] delegate]; 여행 * thisTrip = [appDelegate 여행];

또는 해당 속성을 설정하려면

AppDelegate * appDelegate = [[UIApplication sharedApplication] delegate]; [appDelegate setTrip: newTrip];

위임자는 UIApplication 속성입니다.

도트 구문 사용

Objective-C는 접근 자 메서드를 호출하기 위해 대괄호 표기법 ([]) 대신 사용할 수있는 도트 (.) 연산자를 제공합니다. C 구조체 요소에 액세스 할 때와 같은 방법으로 도트 구문을 사용합니다.

Trip * thisTrip = appDelegate. 여행;

또는 해당 속성을 설정하려면

appDelegate를 사용하십시오. 여행 = newTrip; 그러나 오브젝트와 함께 사용하면 도트 구문은 "구문 적 설탕"역할을합니다. 컴파일러가 접근 자 메시지로 변환합니다. 도트 구문은 인스턴스 변수를 직접 가져 오거나 설정하지 않습니다. 이 예제를 사용하는 코드 예제는 대괄호 표기법을 사용하는 것과 정확히 동일합니다.

많은 프로그래머가 읽을 수 있기 때문에 도트 구문을 좋아합니다. 다른 객체 (다른 객체의 속성 등)의 속성 인 속성에 액세스하는 괄호 표기법 상황을 생각해보십시오.

도트 구문의 진정한 장점은 컴파일러가 읽기 전용 선언 된 속성에 쓰려고 시도를 감지하면

오류

를 생성한다는 것입니다. 존재하지 않는 setter 메서드를 호출했기 때문에 선언되지 않은 메서드 경고 를 처리하는 것보다 훨씬 낫습니다. 런타임에 응용 프로그램이 실패하기 때문입니다. 컴파일러를 사용하여 접근 자 메서드를 만들면 컴파일러는 선언 한 형식의 인스턴스 변수를 만들어 속성 ​​값을 속성 이름과 함께 저장하고 검색하는 데 사용합니다. 예를 들어 다음과 같은 속성: @property (weak, nonatomic) IBOutlet UIImageView * car;

문장

@synthesize car;

는 UIImage 유형의 car라는 이름으로 인스턴스 변수를 생성합니다.

그러나 컴파일러에서 자동으로 @synthesize 문을 생성하게하는 경우 실제로 밑줄 문자로 시작하는 인스턴스 변수 이름을 사용하므로 장면 뒤에있는 다음 코드가 생성됩니다.

자동차를 합성 = _car;

이것은 속성 이름 (self. car에 의해 접근 됨)과 인스턴스 변수 이름 (_car로 간단하게 접근 됨)을 구분할 수있게 해줍니다.

Apple은 일반적인 방법에서는 속성 참조 (self car)를 사용하지만 init 메서드에서는 _car 변수를 사용하는 것이 좋습니다. 이것은 파일 내의 코드에만 적용됩니다. 앱의 다른 곳의 코드는의 @interface 섹션에 선언 된대로 속성에 액세스합니다. h.

코드를 제외한 앱의 모든 부분에 코드가 없습니다. m 파일은 컴파일러가 작업을 수행 할 때 인스턴스 변수에 직접 액세스 할 수 있습니다. 캡슐화가 제대로 이루어 지도록하는 것이 좋습니다.

자신의 접근 자 작성하기

컴파일러에 의해 생성 된 접근자를 사용할 필요는 없습니다. 때로는 직접 구현하는 것이 좋습니다. 접근 자 메서드를 직접 구현하는 경우 접근 방식이 선언 한 특성과 일치하는지 확인해야합니다.

예를 들어 사용하지 않을 수도있는 객체를 만드는 데 많은 오버 헤드가 발생하면 처음 액세스 할 때 객체를 만드는 getter 접근자를 직접 만들 수 있습니다.또한 직접 접근자를 작성한다는 것은 속성과 연결된 인스턴스 변수를 가질 필요가 없다는 것을 의미합니다.

예를 들어 사각형을 나타내는 객체에 면적 속성을 지정할 수 있습니다. 영역에 대한 getter는 길이 x 너비를 수행하고 인스턴스 변수로 신경 쓰지 않아도됩니다.

접근자를 사용하여 인스턴스 변수에 액세스

self를 사용하지 않으면 인스턴스 변수에 직접 액세스합니다. 다음 예제에서는 _currentDestinationIndex에 대한 set 접근 자 메서드가 호출되지 않습니다.

_currentDestinationIndex = [[NSUserDefaults standardUserDefaults] objectForKey: CurrentDestinationKey];

앞은

와 동일하지 않습니다. currentDestinationIndex = [[NSUserDefaults standardUserDefaults] objectForKey: CurrentDestinationKey];

접근자를 사용하려면 자체를 사용해야합니다.

IOS 응용 프로그램에서 선언 된 속성을 사용하는 방법 -

편집자의 선택

소셜 미디어 측정법을 사용하여 판매를 늘리는 방법 - 소셜 미디어 측정 항목을 사용하는 한 회사

소셜 미디어 측정법을 사용하여 판매를 늘리는 방법 - 소셜 미디어 측정 항목을 사용하는 한 회사

판매를위한 크로스 플랫폼 참여는 Best Buy입니다. Best Buy는 모바일 쇼핑 및 소셜 쇼핑을 매장의 각 품목에 대한 QR 코드를 사용하여 매장 내 경험으로 가져 왔습니다. 고객은 상점의 각 항목에 대한 QR 코드를 스캔하여 리뷰를 포함한 더 많은 정보를 얻을 수 있습니다.

블로그에 Google 웹 로그 분석을 설치하는 방법 - 아직없는 경우

블로그에 Google 웹 로그 분석을 설치하는 방법 - 아직없는 경우

블로그 또는 사이트에서 Google 웹 로그 분석 추적 통계를 사용하여 빠르고 쉽게 설치할 수 있습니다. 설치는 1 분 밖에 걸리지 않으며 완전히 고통스럽지 않습니다. 먼저 Google 애널리틱스 ID를 가져 와서 어딘가에 작성하십시오. 쉽게 찾을 수 있습니다. Google 애널리틱스와 대시 보드에서 로그인하십시오.

웹 사이트에 Google 웹 로그 분석을 설치하는 방법 - 웹 사이트에 Google 웹 로그 분석을 설치하는

웹 사이트에 Google 웹 로그 분석을 설치하는 방법 - 웹 사이트에 Google 웹 로그 분석을 설치하는

단 1 분이며 고통스럽지 않습니다. 곧 Google 애널리틱스 덕분에 잠자는 동안 소셜 미디어 측정 항목을 추적하게 될 것입니다. 먼저 Google 애널리틱스 ID를 가져 와서 어딘가에 작성하십시오. 쉽게 찾을 수 있습니다. Google 애널리틱스 및 대시 보드에 로그인하고 톱니 바퀴 아이콘을 클릭하기 만하면됩니다. ...

편집자의 선택

마케팅 자동화에서 분할 테스트의 기본 이점 - A / B 테스트라고도하는 더미 테스트

마케팅 자동화에서 분할 테스트의 기본 이점 - A / B 테스트라고도하는 더미 테스트

다 변수 테스트뿐만 아니라 요인 일정을 유지하고 다양한 시나리오에서 다른 결과를 테스트하여 마케팅 자동화 테스트를 수행하는 것을 의미합니다. 하나의 유료 검색 광고를 통해 사람들을 2 개의 개별 방문 페이지로 유도하는 것이 그 예입니다. 방문 페이지 테스트하기 ...

자동화 된 마케팅을위한 컨텐츠 작성의 기본 - 인형

자동화 된 마케팅을위한 컨텐츠 작성의 기본 - 인형

마케팅 자동화 도구의 사용을 극대화하기 위해 먼저 사람과 콘텐츠와의 관계를 이해해야합니다. 올바른 사람에게 올바른 콘텐츠를 보내는 경우에만 자동화가 유용합니다. 이를 올바르게 수행하는 방법에 대한 기본적인 이해를 돕기 위해 사람들은 두 가지 유형이 관련되어 있음을 인식해야합니다 ...

Microsoft Dynamics CRM을 사용하는 e-Mail 및 Microsoft Dynamics CRM- 더미

Microsoft Dynamics CRM을 사용하는 e-Mail 및 Microsoft Dynamics CRM- 더미

고객 관계를 관리하는 데 도움이되는 Microsoft 도구 현대 직장에서 가장 유용한 도구 중 하나는 전자 메일이므로 전자 메일을 만들고 읽거나, 전자 메일을 특정 레코드에 연결하거나, 일정을 관리하는 데 숙련되어 있어야합니다. ...

편집자의 선택

웹 호스팅 계획에서 더 많은 것을 얻기위한 10 가지 팁 - 인형

웹 호스팅 계획에서 더 많은 것을 얻기위한 10 가지 팁 - 인형

당신은 자신의 웹 사이트 또는 블로그를 가지고 있고, 고객, 독자 또는 웹 호스팅 기술에 의존하는 추종자 만 있습니다. 다음 팁은 웹 호스팅 계획을 최대한 활용하는 데 도움이됩니다. 제어판에서 백업 옵션을 확인하십시오. 일부 제어판을 사용하면 자동화 된 백업을 수행 할 수 있습니다. ...

귀하의 웹 호스트가 귀하를 도와주지 않는 10 가지 사항 (무료) - 인형

귀하의 웹 호스트가 귀하를 도와주지 않는 10 가지 사항 (무료) - 인형

은 웹 호스트만큼 멋지고, 웹 사이트를 디자인, 제작 및 운영하는 데 도움이되는 일에는 한계가 있습니다. 그것은 모두 돈으로옵니다. 귀하가 기꺼이 지불하는 한 귀하의 호스트는 기꺼이 도움이 될 것입니다. 각 호스트는 다릅니다. ...