2016-11-01 1 views
-4

신속한 xcode에서 C# (xamarin)으로 코드를 변환하려고합니다. xcode의 코드 예제를 이해할 수 없습니다.

#pragma mark - Implement DTBackgroundView Class 

@interface DTBackgroundView : UIView 
{ 
    UIWindow *_previousKeyWindow; 
    UIWindow *_alertWindow; 
    NSMutableArray *_alertViews; 
} 

+ (Instancetype)currentBackground; 

static DTBackgroundView *singletion = nil; 

@implementation DTBackgroundView 

+ (Instancetype)currentBackground 
{ 
    static dispatch_once_t onceToken; 
    dispatch_once(&onceToken, ^{ 
     singletion = [DTBackgroundView new]; 
    }); 

    return singletion; 
} 

내 질문

은 다음과 같습니다 :

  1. 누가 을 currentBackground입니다 내가 다음 코드를 이해하지?

    Adeel 그의 의견에 말했듯이

DTBackgroundView *backgroundView = [DTBackgroundView currentBackground]; 
+1

__singleton__ 클래스에 대한 아이디어를 얻으려면 __designPatterns__ 서적을 참고해야합니다. 그리고 게시 한 코드는 __Objective-C__에있는 __Swift__에 없습니다. – Adeel

답변

2

, 그건 목표 - C 코드, 스위프트하지 :

  • 다음 코드 backgroundView 무엇입니까. DTBackgroundView 클래스의 구현을 게시했습니다.

    currentBackground 메서드는 클래스의 싱글 톤 인스턴스를 요청하는 데 사용하는 클래스 메서드 (또는 C++에서 호출 한 "정적 메서드")입니다. 싱글 톤이 이미 생성 되었다면, 그 메소드는 그것을 반환합니다. 그렇지 않으면 싱글 톤을 생성하고 리턴합니다.

    싱글 톤 디자인 패턴을 읽고 C#에서 싱글 톤을 생성하기위한 규칙이 무엇이든 사용해야합니다.

    코코아 (iOS 및 Mac OS)에만 적용되는 GCD (그랜드 센트럴 디스패치)을 사용하므로 코드별로 줄 바꿈을하지 않으려 고하지 않을 것입니다. 싱글 톤을 만들고 반환하기위한 C# 규칙을 찾아서 사용하십시오.

  • +0

    GCD의 약자로 확장 할 수 있습니까? 독자들 (나 자신과 같은)은 익숙하지 않을 수도 있습니다. – matthewrdev

    +0

    Google은 친구입니다. GCD는 Grand Central Dispatch의 약자입니다. https://en.wikipedia.org/wiki/Grand_Central_Dispatch –

    +0

    동의 함, Google은 (내게 빨리 무엇인지 알게 된) 내 친구이지만 대답에 중첩되는 것이 유용 할 수 있다고 생각했습니다. :) – matthewrdev

    관련 문제