Skip to content

Commit a6f5cb0

Browse files
authored
Merge pull request iziz#386 from egoldfarb/disable_init
Switch NBShortNumberUtil to a singleton pattern.
2 parents 879586a + 10eb9ea commit a6f5cb0

File tree

3 files changed

+16
-8
lines changed

3 files changed

+16
-8
lines changed

libPhoneNumberShortNumber/NBShortNumberUtil.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,10 @@ typedef NS_ENUM(NSUInteger, NBEShortNumberCost) {
2525

2626
@property(nonatomic) NSDictionary<NSNumber *, NSArray<NSString *> *> *countryToRegionCodeMap;
2727

28-
/// Initialize short number util with a default metadata helper.
29-
- (instancetype)init;
28+
/// Short number util singleton with a default metadata helper.
29+
+ (NBShortNumberUtil *)sharedInstance;
30+
31+
- (instancetype)init NS_UNAVAILABLE;
3032

3133
/// Initialize short number util with a metadata helper.
3234
/// @param helper A metadata helper.

libPhoneNumberShortNumber/NBShortNumberUtil.m

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,17 @@ @implementation NBShortNumberUtil {
2525
NBPhoneNumberUtil *_phoneUtil;
2626
}
2727

28+
+ (NBShortNumberUtil *)sharedInstance {
29+
static NBShortNumberUtil *sharedOnceInstance = nil;
30+
static dispatch_once_t onceToken;
31+
dispatch_once(&onceToken, ^{
32+
sharedOnceInstance =
33+
[[self alloc] initWithMetadataHelper:[[NBShortNumberMetadataHelper alloc] init]
34+
phoneNumberUtil:[NBPhoneNumberUtil sharedInstance]];
35+
});
36+
return sharedOnceInstance;
37+
}
38+
2839
- (instancetype)initWithMetadataHelper:(NBShortNumberMetadataHelper *)helper
2940
phoneNumberUtil:(NBPhoneNumberUtil *)phoneNumberUtil {
3041
self = [super init];
@@ -36,11 +47,6 @@ - (instancetype)initWithMetadataHelper:(NBShortNumberMetadataHelper *)helper
3647
return self;
3748
}
3849

39-
- (instancetype)init {
40-
return [self initWithMetadataHelper:[[NBShortNumberMetadataHelper alloc] init]
41-
phoneNumberUtil:[NBPhoneNumberUtil sharedInstance]];
42-
}
43-
4450
- (BOOL)isPossibleShortNumber:(NBPhoneNumber *)phoneNumber forRegion:(NSString *)regionDialingFrom {
4551
if (![self doesPhoneNumber:phoneNumber matchesRegion:regionDialingFrom]) {
4652
return NO;

libPhoneNumberShortNumber/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import libPhoneNumberShortNumber
4646

4747
## Usage - **NBShortNumberUtil**
4848
```obj-c
49-
NBShortNumberUtil *shortNumberUtil = [[NBShortNumberUtil alloc] init];
49+
NBShortNumberUtil *shortNumberUtil = [NBShortNumberUtil sharedInstance];
5050

5151
// possibleNumber : +33123456
5252
NSLog(@"Is possible short number: %d",

0 commit comments

Comments
 (0)