Skip to content

Commit 81ac197

Browse files
author
dalerda
committed
monkey bug
1 parent aa4ed5d commit 81ac197

File tree

16 files changed

+1125
-3
lines changed

16 files changed

+1125
-3
lines changed

Monkey.xcodeproj/project.pbxproj

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,13 @@
5959
0ACEA34C1B51467A009F6B6D /* UserDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ACEA3441B51467A009F6B6D /* UserDetailViewController.m */; };
6060
0ACEA3521B516030009F6B6D /* AboutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ACEA3501B516030009F6B6D /* AboutViewController.m */; };
6161
0ACEA3551B51604A009F6B6D /* LoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ACEA3541B51604A009F6B6D /* LoginViewController.m */; };
62+
0AFC7E0A1BDE0BF7008B9A5D /* .gitignore in Resources */ = {isa = PBXBuildFile; fileRef = 0AFC7DFF1BDE0BF7008B9A5D /* .gitignore */; settings = {ASSET_TAGS = (); }; };
63+
0AFC7E0B1BDE0BF7008B9A5D /* AESCrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AFC7E011BDE0BF7008B9A5D /* AESCrypt.m */; settings = {ASSET_TAGS = (); }; };
64+
0AFC7E0C1BDE0BF7008B9A5D /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = 0AFC7E021BDE0BF7008B9A5D /* LICENSE */; settings = {ASSET_TAGS = (); }; };
65+
0AFC7E0D1BDE0BF7008B9A5D /* NSData+Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AFC7E041BDE0BF7008B9A5D /* NSData+Base64.m */; settings = {ASSET_TAGS = (); }; };
66+
0AFC7E0E1BDE0BF7008B9A5D /* NSData+CommonCrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AFC7E061BDE0BF7008B9A5D /* NSData+CommonCrypto.m */; settings = {ASSET_TAGS = (); }; };
67+
0AFC7E0F1BDE0BF7008B9A5D /* NSString+Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AFC7E081BDE0BF7008B9A5D /* NSString+Base64.m */; settings = {ASSET_TAGS = (); }; };
68+
0AFC7E101BDE0BF7008B9A5D /* README.md in Sources */ = {isa = PBXBuildFile; fileRef = 0AFC7E091BDE0BF7008B9A5D /* README.md */; settings = {ASSET_TAGS = (); }; };
6269
0AFCEBBE1B62CE3A00051D9A /* TrendingDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AFCEBBD1B62CE3A00051D9A /* TrendingDataSource.m */; };
6370
0AFCEBC41B62D17D00051D9A /* TrendingViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AFCEBC31B62D17D00051D9A /* TrendingViewModel.m */; };
6471
0AFCEBC91B63347C00051D9A /* UserRankDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AFCEBC81B63347C00051D9A /* UserRankDataSource.m */; };
@@ -447,6 +454,17 @@
447454
0ACEA3501B516030009F6B6D /* AboutViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AboutViewController.m; sourceTree = "<group>"; };
448455
0ACEA3531B51604A009F6B6D /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginViewController.h; sourceTree = "<group>"; };
449456
0ACEA3541B51604A009F6B6D /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; };
457+
0AFC7DFF1BDE0BF7008B9A5D /* .gitignore */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = .gitignore; sourceTree = "<group>"; };
458+
0AFC7E001BDE0BF7008B9A5D /* AESCrypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AESCrypt.h; sourceTree = "<group>"; };
459+
0AFC7E011BDE0BF7008B9A5D /* AESCrypt.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AESCrypt.m; sourceTree = "<group>"; };
460+
0AFC7E021BDE0BF7008B9A5D /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
461+
0AFC7E031BDE0BF7008B9A5D /* NSData+Base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+Base64.h"; sourceTree = "<group>"; };
462+
0AFC7E041BDE0BF7008B9A5D /* NSData+Base64.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+Base64.m"; sourceTree = "<group>"; };
463+
0AFC7E051BDE0BF7008B9A5D /* NSData+CommonCrypto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+CommonCrypto.h"; sourceTree = "<group>"; };
464+
0AFC7E061BDE0BF7008B9A5D /* NSData+CommonCrypto.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+CommonCrypto.m"; sourceTree = "<group>"; };
465+
0AFC7E071BDE0BF7008B9A5D /* NSString+Base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Base64.h"; sourceTree = "<group>"; };
466+
0AFC7E081BDE0BF7008B9A5D /* NSString+Base64.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Base64.m"; sourceTree = "<group>"; };
467+
0AFC7E091BDE0BF7008B9A5D /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
450468
0AFCEBBC1B62CE3A00051D9A /* TrendingDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TrendingDataSource.h; sourceTree = "<group>"; };
451469
0AFCEBBD1B62CE3A00051D9A /* TrendingDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TrendingDataSource.m; sourceTree = "<group>"; };
452470
0AFCEBC21B62D17D00051D9A /* TrendingViewModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TrendingViewModel.h; sourceTree = "<group>"; };
@@ -1030,6 +1048,24 @@
10301048
path = LoginModule;
10311049
sourceTree = "<group>";
10321050
};
1051+
0AFC7DFE1BDE0BF7008B9A5D /* AESCrypt-ObjC */ = {
1052+
isa = PBXGroup;
1053+
children = (
1054+
0AFC7DFF1BDE0BF7008B9A5D /* .gitignore */,
1055+
0AFC7E001BDE0BF7008B9A5D /* AESCrypt.h */,
1056+
0AFC7E011BDE0BF7008B9A5D /* AESCrypt.m */,
1057+
0AFC7E021BDE0BF7008B9A5D /* LICENSE */,
1058+
0AFC7E031BDE0BF7008B9A5D /* NSData+Base64.h */,
1059+
0AFC7E041BDE0BF7008B9A5D /* NSData+Base64.m */,
1060+
0AFC7E051BDE0BF7008B9A5D /* NSData+CommonCrypto.h */,
1061+
0AFC7E061BDE0BF7008B9A5D /* NSData+CommonCrypto.m */,
1062+
0AFC7E071BDE0BF7008B9A5D /* NSString+Base64.h */,
1063+
0AFC7E081BDE0BF7008B9A5D /* NSString+Base64.m */,
1064+
0AFC7E091BDE0BF7008B9A5D /* README.md */,
1065+
);
1066+
path = "AESCrypt-ObjC";
1067+
sourceTree = "<group>";
1068+
};
10331069
0AFCEB9F1B62CCA800051D9A /* TableViewProtocol */ = {
10341070
isa = PBXGroup;
10351071
children = (
@@ -1193,6 +1229,7 @@
11931229
isa = PBXGroup;
11941230
children = (
11951231
0ACEA3171B51425C009F6B6D /* README.md */,
1232+
0AFC7DFE1BDE0BF7008B9A5D /* AESCrypt-ObjC */,
11961233
0A857C471B4CE4FF00516D23 /* YiRefresh */,
11971234
A1FC32F91B25D92200FCBCE7 /* MJPhotoBrowser */,
11981235
A1FC330B1B25D92200FCBCE7 /* MKNetworkKit */,
@@ -1607,6 +1644,7 @@
16071644
A1FC33C41B25D92200FCBCE7 /* [email protected] in Resources */,
16081645
A1FC33BF1B25D92200FCBCE7 /* UMFeedbackLocalizable.strings in Resources */,
16091646
A1FC33CB1B25D92200FCBCE7 /* [email protected] in Resources */,
1647+
0AFC7E0A1BDE0BF7008B9A5D /* .gitignore in Resources */,
16101648
A1FC33C81B25D92200FCBCE7 /* [email protected] in Resources */,
16111649
A1FC33C91B25D92200FCBCE7 /* [email protected] in Resources */,
16121650
A1FC33C31B25D92200FCBCE7 /* [email protected] in Resources */,
@@ -1615,6 +1653,7 @@
16151653
A1FC33C61B25D92200FCBCE7 /* [email protected] in Resources */,
16161654
0A969C8F1B5E742300601969 /* Localizable.strings in Resources */,
16171655
A1FC33C51B25D92200FCBCE7 /* [email protected] in Resources */,
1656+
0AFC7E0C1BDE0BF7008B9A5D /* LICENSE in Resources */,
16181657
A1FC339C1B25D92200FCBCE7 /* MJPhotoBrowser.bundle in Resources */,
16191658
0A857C4D1B4CE4FF00516D23 /* [email protected] in Resources */,
16201659
A1FC32B81B25D90B00FCBCE7 /* Main.storyboard in Resources */,
@@ -1659,6 +1698,7 @@
16591698
0A857C4E1B4CE4FF00516D23 /* YiRefreshFooter.m in Sources */,
16601699
0AA374B01B5FA14B00C1C045 /* UserReceivedEventActorModel.m in Sources */,
16611700
A1FC339E1B25D92200FCBCE7 /* MJPhotoLoadingView.m in Sources */,
1701+
0AFC7E101BDE0BF7008B9A5D /* README.md in Sources */,
16621702
A1FC339D1B25D92200FCBCE7 /* MJPhotoBrowser.m in Sources */,
16631703
0AFCEBE61B63478300051D9A /* RepositoryDetailDataSource.m in Sources */,
16641704
A1FC33BD1B25D92200FCBCE7 /* UIView+WebCacheOperation.m in Sources */,
@@ -1685,6 +1725,7 @@
16851725
0ACEA3461B51467A009F6B6D /* RepositoryDetailViewController.m in Sources */,
16861726
0ACEA34C1B51467A009F6B6D /* UserDetailViewController.m in Sources */,
16871727
0AA3746F1B5F867600C1C045 /* ShowcasesModel.m in Sources */,
1728+
0AFC7E0E1BDE0BF7008B9A5D /* NSData+CommonCrypto.m in Sources */,
16881729
A1FC33A71B25D92200FCBCE7 /* NSDictionary+RequestEncoding.m in Sources */,
16891730
A1FC33A11B25D92200FCBCE7 /* MJPhotoView.m in Sources */,
16901731
0ACEA3481B51467A009F6B6D /* UserRankViewController.m in Sources */,
@@ -1695,6 +1736,7 @@
16951736
A1FC33B31B25D92200FCBCE7 /* SDWebImageDownloader.m in Sources */,
16961737
A1FC33AF1B25D92200FCBCE7 /* NSData+ImageContentType.m in Sources */,
16971738
0ACEA3551B51604A009F6B6D /* LoginViewController.m in Sources */,
1739+
0AFC7E0F1BDE0BF7008B9A5D /* NSString+Base64.m in Sources */,
16981740
A1FC339F1B25D92200FCBCE7 /* MJPhotoProgressView.m in Sources */,
16991741
0A91BEAA1B5BC4DF00A20743 /* MoreViewController.m in Sources */,
17001742
A1FC33BA1B25D92200FCBCE7 /* UIImage+WebP.m in Sources */,
@@ -1711,10 +1753,12 @@
17111753
0A91BEA71B5BC4D800A20743 /* DiscoveryViewController.m in Sources */,
17121754
A1FC33B11B25D92200FCBCE7 /* SDWebImageCompat.m in Sources */,
17131755
0ACEA3451B51467A009F6B6D /* RepositoriesViewController.m in Sources */,
1756+
0AFC7E0D1BDE0BF7008B9A5D /* NSData+Base64.m in Sources */,
17141757
0AFCEBCC1B63352D00051D9A /* UserRankViewModel.m in Sources */,
17151758
0AA374911B5F8B0200C1C045 /* ShowcasesDetailViewController.m in Sources */,
17161759
A1FC33A51B25D92200FCBCE7 /* NSData+MKBase64.m in Sources */,
17171760
A1FC33AC1B25D92200FCBCE7 /* MKNetworkOperation.m in Sources */,
1761+
0AFC7E0B1BDE0BF7008B9A5D /* AESCrypt.m in Sources */,
17181762
0A4780C41B5F1ECF00E99D7A /* TrendingViewController.m in Sources */,
17191763
0AA374AA1B5F9FFA00C1C045 /* NewsViewController.m in Sources */,
17201764
0AA374B61B5FA16F00C1C045 /* UserReceivedEventPayloadModel.m in Sources */,

Monkey/Classes/Common/AppGenernal/AppConfig.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@
3636
/**
3737
* this is not to be used by you, otherwise infringement
3838
*/
39-
#define CoderyiClientID @"a8d9c1a366f057a23753"
40-
#define CoderyiClientSecret @"f1e47cd31800a90e517b37731038ae07dca580d2"
39+
#define CoderyiClientID @"2Abvwo7M117qA6xHhHAg6th+/28YYY4lA7Z23SXxJG8="
40+
#define CoderyiClientSecret @"ZVQguKWUuj7votRcUIhThLhmfbrHytkGByT+OSeXxIPttGpbZd84jh1b/rNdl+ek"
4141

4242
#define RepositoriesTableViewCellheight 95
4343
#define RankTableViewCellHeight 71

Monkey/Classes/Module/PersonalModule/LoginModule/LoginViewController.m

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
//
88

99
#import "LoginViewController.h"
10+
#import "AESCrypt.h"
1011
@interface LoginViewController (){
1112
UITextField *usernameTF;
1213
UITextField *pwdTF;
@@ -80,8 +81,15 @@ - (void)loginBtAction{
8081
if (pwdTF.text.length<1 || !pwdTF.text) {
8182
return;
8283
}
84+
NSString *coderyiClientID=CoderyiClientID;
85+
NSString *encryptedData = [AESCrypt encrypt:coderyiClientID password:@"xxxsd-sdsd*sd672323q___---_w.."];
86+
NSString *coderyiClientSecret=CoderyiClientSecret;
87+
NSString *message = [AESCrypt encrypt:coderyiClientSecret password:@"xx3xc45sqvzupb4xsd-sdsd*sd672323q___---_w.."];
88+
89+
90+
8391

84-
[OCTClient setClientID:CoderyiClientID clientSecret:CoderyiClientSecret];
92+
[OCTClient setClientID:[[AESCrypt decrypt:CoderyiClientID password:@"xxxsd-sdsd*sd672323q___---_w.."] substringFromIndex:1] clientSecret:[[AESCrypt decrypt:CoderyiClientSecret password:@"xx3xc45sqvzupb4xsd-sdsd*sd672323q___---_w.."] substringFromIndex:1]];
8593

8694
OCTUser *user = [OCTUser userWithRawLogin:usernameTF.text server:OCTServer.dotComServer];
8795
[self showYiProgressHUD:@"logining"];

Monkey/Classes/Module/UsersModule/ViewControllers/UserDetailViewController.m

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,13 @@ - (void)checkFollowStatusAction{
288288
dispatch_async(dispatch_get_main_queue(), ^{
289289
isFollowing=hasFollowUser.boolValue;
290290
NSString *rightTitle;
291+
if (isFollowing) {
292+
rightTitle=@"unfollow";
293+
}else{
294+
rightTitle=@"follow";
295+
296+
}
297+
291298
self.navigationItem.rightBarButtonItem=nil;
292299
UIBarButtonItem *right=[[UIBarButtonItem alloc] initWithTitle:rightTitle style:UIBarButtonItemStylePlain target:self action:@selector(followAction)];
293300
self.navigationItem.rightBarButtonItem=right;
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Xcode
2+
build/*
3+
*.pbxuser
4+
!default.pbxuser
5+
*.mode1v3
6+
!default.mode1v3
7+
*.mode2v3
8+
!default.mode2v3
9+
*.perspectivev3
10+
!default.perspectivev3
11+
*.xcworkspace
12+
!default.xcworkspace
13+
xcuserdata
14+
profile
15+
*.moved-aside
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
//
2+
// AESCrypt.h
3+
// Gurpartap Singh
4+
//
5+
// Created by Gurpartap Singh on 06/05/12.
6+
// Copyright (c) 2012 Gurpartap Singh
7+
//
8+
// MIT License
9+
//
10+
// Permission is hereby granted, free of charge, to any person obtaining
11+
// a copy of this software and associated documentation files (the
12+
// "Software"), to deal in the Software without restriction, including
13+
// without limitation the rights to use, copy, modify, merge, publish,
14+
// distribute, sublicense, and/or sell copies of the Software, and to
15+
// permit persons to whom the Software is furnished to do so, subject to
16+
// the following conditions:
17+
//
18+
// The above copyright notice and this permission notice shall be
19+
// included in all copies or substantial portions of the Software.
20+
//
21+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22+
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23+
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24+
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25+
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26+
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27+
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28+
//
29+
30+
#import <Foundation/Foundation.h>
31+
32+
@interface AESCrypt : NSObject
33+
34+
+ (NSString *)encrypt:(NSString *)message password:(NSString *)password;
35+
+ (NSString *)decrypt:(NSString *)base64EncodedString password:(NSString *)password;
36+
37+
@end
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
//
2+
// AESCrypt.m
3+
// Gurpartap Singh
4+
//
5+
// Created by Gurpartap Singh on 06/05/12.
6+
// Copyright (c) 2012 Gurpartap Singh
7+
//
8+
// MIT License
9+
//
10+
// Permission is hereby granted, free of charge, to any person obtaining
11+
// a copy of this software and associated documentation files (the
12+
// "Software"), to deal in the Software without restriction, including
13+
// without limitation the rights to use, copy, modify, merge, publish,
14+
// distribute, sublicense, and/or sell copies of the Software, and to
15+
// permit persons to whom the Software is furnished to do so, subject to
16+
// the following conditions:
17+
//
18+
// The above copyright notice and this permission notice shall be
19+
// included in all copies or substantial portions of the Software.
20+
//
21+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22+
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23+
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24+
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25+
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26+
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27+
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28+
//
29+
30+
#import "AESCrypt.h"
31+
32+
#import "NSData+Base64.h"
33+
#import "NSString+Base64.h"
34+
#import "NSData+CommonCrypto.h"
35+
36+
@implementation AESCrypt
37+
38+
+ (NSString *)encrypt:(NSString *)message password:(NSString *)password {
39+
NSData *encryptedData = [[message dataUsingEncoding:NSUTF8StringEncoding] AES256EncryptedDataUsingKey:[[password dataUsingEncoding:NSUTF8StringEncoding] SHA256Hash] error:nil];
40+
NSString *base64EncodedString = [NSString base64StringFromData:encryptedData length:[encryptedData length]];
41+
return base64EncodedString;
42+
}
43+
44+
+ (NSString *)decrypt:(NSString *)base64EncodedString password:(NSString *)password {
45+
NSData *encryptedData = [NSData base64DataFromString:base64EncodedString];
46+
NSData *decryptedData = [encryptedData decryptedAES256DataUsingKey:[[password dataUsingEncoding:NSUTF8StringEncoding] SHA256Hash] error:nil];
47+
return [[NSString alloc] initWithData:decryptedData encoding:NSUTF8StringEncoding];
48+
}
49+
50+
@end

Monkey/Vendor/AESCrypt-ObjC/LICENSE

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
Copyright (c) 2012 Gurpartap Singh
2+
3+
MIT License
4+
5+
Permission is hereby granted, free of charge, to any person obtaining
6+
a copy of this software and associated documentation files (the
7+
"Software"), to deal in the Software without restriction, including
8+
without limitation the rights to use, copy, modify, merge, publish,
9+
distribute, sublicense, and/or sell copies of the Software, and to
10+
permit persons to whom the Software is furnished to do so, subject to
11+
the following conditions:
12+
13+
The above copyright notice and this permission notice shall be
14+
included in all copies or substantial portions of the Software.
15+
16+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//
2+
// NSData+Base64.m
3+
// Gurpartap Singh
4+
//
5+
// Created by Gurpartap Singh on 06/05/12.
6+
// Copyright (c) 2012 Gurpartap Singh. All rights reserved.
7+
//
8+
9+
#import <Foundation/Foundation.h>
10+
11+
@class NSString;
12+
13+
@interface NSData (Base64Additions)
14+
15+
+ (NSData *)base64DataFromString:(NSString *)string;
16+
17+
@end

0 commit comments

Comments
 (0)