iPhone의 Application Delegate의 적절한 사용
내 응용 프로그램의 어느 곳에서나 특정 상태 / 객체를 참조 할 수 있기를 원합니다. 예를 들어 사용자가 애플리케이션에 로그인하면 웹 서비스를 호출하고 사용자 정보를 검색해야합니다. 그런 다음 다음과 같이 응용 프로그램의 어느 곳에서나이 정보에 액세스 할 수 있기를 원합니다.
myAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
user = delegate.u;
인스턴스 변수를 앱 대리자에서 User 개체로 설정하고 필요할 때 거기에서 참조하는 것이 좋지 않은 방법입니까? 일반적으로 사용자 로그인시 설정합니다.
전문가들이 이걸 어떻게 처리하는지 듣고 싶었어요.
일반적으로 다음과 같은 경우에만 앱 델리게이트에 연결해야합니다.
- 앱 델리게이트와 동일한 NIB 파일에서 생성되었습니다 (예 : 단일 창 인터페이스의 정적 UI 요소).
- 앱 델리게이트를 통과하는 애플리케이션 수준 이벤트 처리와 연결됩니다 (예 : 환경 설정 창의 메뉴 항목).
다른 모든 경우에 대한 액세스를 관리하는 싱글 톤을 만들어야합니다.
Jason Coco는 애플리케이션 컨트롤러를 통한 라우팅을 제안했습니다. 내 프로그램에서 나는 일반적으로 이것을 피한다. 왜냐하면 그것이 최상위 수준에 너무 많은 책임을 부과한다고 생각하기 때문이다. 가능한 경우 모든 것이 자체 관리되어야하고, 더 높은 수준의 관리는 동료 간의 조정에 대한 요구 사항이있을 때만 사용해야한다고 생각한다. 레벨 모듈.
나는 내 자신의 블로그를 링크하지 않을 것입니다. 그러나 당신이 저와 싱글 톤을 구글링한다면 아마도 제가 쓴 글을 더 자세히 찾을 수있을 것입니다.
Matt는 너무 겸손합니다. 주제에 대한 그의 게시물은 내가 읽은 것 중 최고 중 하나이며 링크가 필요합니다. http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html
나는 당신의 접근 방식에 아무런 문제가 없다고 생각합니다. 저는 보통이 상황을 처리하기 위해 싱글 톤을 사용합니다.
// MyCommon.h:
@interface MyCommon
class MyCommon : NSObject
{
int user;
};
@property(assign) int user;
+ (MyCommon *)singleton;
@end
// MyCommon.m:
@implementation MyCommon
static MyCommon * MyCommon_Singleton = nil;
+ (MyCommon *)singleton
{
if (nil == MyCommon_Singleton)
{
MyCommon_Singleton = [[MyCommon_Singleton alloc] init];
}
return MyCommon_Singleton;
}
@end
MyCommon
다음과 같이 싱글은 다음 내 응용 프로그램에서 임의의 장소에서 사용된다 :
int user = [MyCommon singleton].user;
일반적으로 애플리케이션의 컨트롤러에이 정보를 요청하고 데이터 모델이 존재하는 모든 곳에 저장 / 조회하는 방법을 아는 책임이 있습니다. 응용 프로그램의 컨트롤러는 응용 프로그램 대리자와 같을 수도 있고 같지 않을 수도 있습니다 (대부분의 간단한 응용 프로그램에서는 동일합니다).
참고 URL : https://stackoverflow.com/questions/338734/iphone-proper-usage-of-application-delegate
'developer tip' 카테고리의 다른 글
이니셜 라이저 목록의 요소 수가 모호한 호출 오류를 일으키는 이유는 무엇입니까? (0) | 2020.12.12 |
---|---|
asp.net 코어 미들웨어 대 필터 (0) | 2020.12.12 |
고주파 거래 (0) | 2020.12.12 |
모든 요청을 처리하도록 SpringMVC를 구성 할 수 있지만 정적 컨텐츠 디렉토리는 제외 할 수 있습니까? (0) | 2020.12.12 |
다른 언어로 개발을위한 상대적 비용 연구 (0) | 2020.12.12 |