objective c로 개발을 할때
strURL 이라는 변수를 선언할때
늘 헤더파일에서
@property 로 변수를 만들고 m파일에서 _strUrl이런식으로 변수값을 사용했습니다.
그런데 생각해보니 그냥 m 파일에서 NSString *strUrl로 선언해서 그냥 사용하면 되지 않나요?
이렇게 해도 문제 없는데요. @property로 꼭 선언을 해야하는 이유가 있나요?
코드정리하다가 궁금해서 문의 드립니다.
감사합니다.
objective c로 개발을 할때
strURL 이라는 변수를 선언할때
늘 헤더파일에서
@property 로 변수를 만들고 m파일에서 _strUrl이런식으로 변수값을 사용했습니다.
그런데 생각해보니 그냥 m 파일에서 NSString *strUrl로 선언해서 그냥 사용하면 되지 않나요?
이렇게 해도 문제 없는데요. @property로 꼭 선언을 해야하는 이유가 있나요?
코드정리하다가 궁금해서 문의 드립니다.
감사합니다.
예를 들면 view.backgroundColor 와 같은 형태로요.
property가 아니라면 backgroundColor 라는 함수와 setBackgroundColor: 라는 함수를 각기 만들고,
사용하실 때도 항상 [view backgroundColor] 또는 [view setBackgroundColor:[UIColor redColor]] 같은 형태로 써야만 합니다.
하지만 property 라면 view.backgroundColor 또는 view.backgroundColor = [UIColor redColor] 처럼 쓸 수도 있지요.
Property로 선언한 변수는 좀 다른 의미가 있습니다.
지금은 ARC 환경이라서 메모리 관리를 하려고 일부러 사용하지는 않지만,
윗분들 말처럼
- 클래스 전역에서 사용하려는 경우
- 외부 액세서로 제공하는 경우
- Getter/Setter가 필요한 경우
- Key Value Coding으로 사용하려는 경우
- Lazy Loading을 구현하려는 경우
등등의 이유가 생각납니다.
이런 경우 에는 한번쯤 고민할 필요가 있을 것 같습니다.
복잡한 내용은 다 빼고,
가장 중요한 것은 아무래도,
목적에 맞게 적합한걸 쓰면 되겠죠 뭐