나는이 주제에 대해 많은 게시물을 조사했다. 어쩌면 나는 "그 하나"를 가로 지르지 않았고, 누군가 그 방향으로 나를 가리킬 것이다. 질문은 간단하고 아마 간단한 대답을 가지고있을 것입니다.클래스 인스턴스 외부에서 보이지 않거나 사용할 수없는 인스턴스 변수 및 메서드를 선언하는 방법은 무엇입니까?
"public_ivar"및 "private_ivar"와 같은 두 개의 ivars가있는 경우/public을 공개하고 비공개를 헤더를 보는 사람에게 공개하지 않도록/how를 선언해야합니다. 파일?
"public_method"및 "private_method"의 경우와 같은 질문입니다.
나는 다른 사람들이보고 싶어하는 메서드와 ivars 만 공개하는 깨끗한 헤더 파일을 (다른 언어로) 좋아합니다. 당신은 당신의 헤더 파일을 공개 할 수 있어야하고, 누군가가 그들이하기로되어 있지 않은 것에 접근 할 위험에 처하지 않아야합니다. 객관적으로 C에서 어떻게합니까?
예를 들어,이 정보에 대한 액세스가 필요한 다양한 클래스 메소드 사이에서 일부 데이터, 카운터 또는 이와 유사한 정보를 추적하기 위해 ivar을 사용해야한다고 결정했다고 가정 해 봅시다. 만약 그 아이어가 @interface의 헤더에서 통상적으로 선언된다면 그것의 존재는 공개적으로 알려지며 클래스의 인스턴스를 만드는 사람은 누구나 사용할 수 있습니다. 이상적인 시나리오는이 ivar이 클래스 구현 외부에서 전혀 보이지 않는다는 것입니다.
좋아요, 이것 좀보세요. 나는 유전 알고리즘과 뉴럴 네트워크 (Neural Networks)를 연구 중이다. 클래스는 내부적으로 필요한 변수 더미로 끝납니다. 헤더 파일 수준에서 가시성을 필요로하는 것은 거의 없습니다. iOS4 +에 대한 구현 파일의 첫 번째 예가 (@property 문 앞에 int privateInt를 선언하지 않았으므로)? –
@Martin iOS에서 Backing 인스턴스 변수의 자동 생성을 허용하는 Objective-C 2.0을 사용할 수 있는지 확실하지 않습니다. –
@Martin [이 웹 페이지는 Apple 웹 사이트] (http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtVersionsPlatforms.html%23//apple_ref/doc/uid/ TP40008048-CH106-SW1)은 특정 iOS 버전을 나열하지 않습니다. –