iOS 개발의 단일 예제 모드

1598 단어
하나.단일 모드 소개: 우선 우리는 모든 프로젝트에서 AppDelegate가 완벽한 단일 예라는 것을 알아야 한다.(1) 프로그램 운행 과정에서 하나의 실례 대상만 있고 이 실례는 외부에 접근하기 쉬워 실례 개수를 제어하고 자원을 절약할 수 있다.(2) 하나의 예는 일반적으로 도구 클래스에 사용되며 전체 응용 프로그램에서 글자는 한 번 초기화하면 자원을 공유할 수 있다.(3) 단례 모델은 실례화 과정을 통제하기 때문에 힘들고 실례화 과정을 더욱 유연하게 할 수 있다.(4) 단일 대상이 구축되면 대상 바늘이 정적 구역에 보존되고 무더기에 분배된 메모리 공간은 자동으로 방출되지 않으며 프로그램이 종료되면 앱을 죽여야 방출된다.(5) 단일 클래스는 OC의 계승 특성을 실현할 수 없다. 계승을 사용하면 동료도 정적 변수를 계승하고 하위 클래스와 상위 클래스를 동시에 만들 때 먼저 만든 실례 대상만 만들 수 있기 때문에 클래스의 확장을 하지 않는다.(6) 단례는 값을 전달하는 데 사용할 수 있다.주: 만약에 같은 유형의 대상이 항상 서로 다른 용례 장면에서 변화를 일으키면 하나의 예는 데이터의 오류를 일으켜 서로의 상태를 저장할 수 없다.우리는 단례류를 사용하기 전에 반드시 단례류가 류의 이후의 확장성에 적합한지 잘 고려하여 맹목적으로 단례를 남용하는 것을 피해야 한다.
둘.단일 코드 구현: 단일 예는 NSObject에 상속됩니다. 우선 초기화 방법을 설명합니다.
Singleton.h

@interface Singleton : NSObject

+(instancetype) shareInstance ;

@end

단일 인스턴스의 구현 방법에는 다음과 같은 여러 가지가 있습니다.
#import "Singleton.h"

static Singleton *instance = nil;
@implementtation Singleton
+(instancetype) shareInstance{
/// 1. GCD  , , 
     static dispath_once_t onceToken;
     dispath_once(&onceToken, ^{
          if (instance == nil) {
              instance = [[self alloc] init]; 
//         instance = [[Singleton alloc] init];
          }
     });
return instance;
//  id,instancetype, (Singleton), .
// 2.  ,(GCD )
@synchronized (self) {
  //  ,  ,  
       if (instance == nil) {
           instance = [[self alloc] init];
      }
     return instance;
   }
}
@end


간단합니다. [Singleton share Instance]를 호출하여 단일 대상을 얻고 하고 싶은 일을 하면 됩니다.단례가 중요하고 사용하기에 편리하지만 어렵지 않다. 이런 것들은 간단한 항목에서 충분하다.

좋은 웹페이지 즐겨찾기