forked from shadowsocks/shadowsocks-iOS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProfile.m
74 lines (48 loc) · 1.91 KB
/
Profile.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
// Generated by json_to_model
#import "Profile.h"
@implementation Profile {
}
- (id)initWithJSONDictionary:(NSDictionary *)dictionary {
self = [super init];
if (![dictionary isKindOfClass:[NSDictionary class]])
return nil;
if (self) {
self.server = (dictionary[@"server"] != [NSNull null]) ? dictionary[@"server"] : nil;
self.serverPort = (dictionary[@"server_port"] != [NSNull null]) ? [dictionary[@"server_port"] integerValue] : 0;
self.remarks = (dictionary[@"remarks"] != [NSNull null]) ? dictionary[@"remarks"] : nil;
self.password = (dictionary[@"password"] != [NSNull null]) ? dictionary[@"password"] : nil;
self.method = (dictionary[@"method"] != [NSNull null]) ? dictionary[@"method"] : nil;
}
return self;
}
- (id)initWithJSONData:(NSData *)data {
self = [super init];
if (self) {
NSError *error = nil;
id result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
if (result) {
self = [self initWithJSONDictionary:result];
} else {
return nil;
}
}
return self;
}
- (NSDictionary *)JSONDictionary {
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
dictionary[@"server"] = (self.server != nil) ? self.server : [NSNull null];
dictionary[@"server_port"] = @(self.serverPort);
dictionary[@"remarks"] = (self.remarks != nil) ? self.remarks : [NSNull null];
dictionary[@"password"] = (self.password != nil) ? self.password : [NSNull null];
dictionary[@"method"] = (self.method != nil) ? self.method : [NSNull null];
return dictionary;
}
- (NSData *)JSONData {
NSError *error = nil;
NSData *data = [NSJSONSerialization dataWithJSONObject:[self JSONDictionary] options:0 error:&error];
if (error) {
@throw error;
}
return data;
}
@end