Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
O
Opple-iOS
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张杰
Opple-iOS
Commits
4a04cccf
Commit
4a04cccf
authored
May 09, 2016
by
zhu
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://git.oschina.net/gomore/Opple-iOS
parents
9921418a
f1ee5e68
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
321 additions
and
24 deletions
+321
-24
LoginViewController.m
Lighting/Class/Login/LoginViewController.m
+66
-20
ProductLibraryViewController.m
Lighting/Class/ProductLibraryViewController.m
+14
-0
project.pbxproj
Lighting/Lighting.xcodeproj/project.pbxproj
+14
-0
HENLENSONG.h
Lighting/Tools/HENLENSONG.h
+27
-0
HENLENSONG.m
Lighting/Tools/HENLENSONG.m
+127
-0
NetworkRequestClassManager.h
Lighting/Tools/NetworkRequestClassManager.h
+17
-2
NetworkRequestClassManager.m
Lighting/Tools/NetworkRequestClassManager.m
+55
-2
PrefixHeader.pch
Lighting/Tools/PrefixHeader.pch
+1
-0
No files found.
Lighting/Class/Login/LoginViewController.m
View file @
4a04cccf
...
...
@@ -29,6 +29,11 @@
*/
@property
(
nonatomic
,
strong
)
authenticateView
*
resetPasswordView
;
/**
* 定时器
*/
@property
(
nonatomic
,
strong
)
NSTimer
*
sendTimer
;
@end
@implementation
LoginViewController
...
...
@@ -195,6 +200,7 @@
self
.
identityView
.
layer
.
cornerRadius
=
10
;
[
self
.
identityView
.
backLoginButton
addTarget
:
self
action
:
@selector
(
BackloginButtonClick
)
forControlEvents
:
UIControlEventTouchUpInside
];
[
self
.
identityView
.
nextButton
addTarget
:
self
action
:
@selector
(
NextButtonClick
)
forControlEvents
:
UIControlEventTouchUpInside
];
[
self
.
identityView
.
SendButton
addTarget
:
self
action
:
@selector
(
SendButtonClick
)
forControlEvents
:
UIControlEventTouchUpInside
];
self
.
identityView
.
alpha
=
0
;
self
.
identityView
.
frame
=
self
.
userNameLoginView
.
frame
;
[
self
.
view
addSubview
:
self
.
identityView
];
...
...
@@ -205,14 +211,65 @@
}];
}
#pragma mark -发送验证码
-
(
void
)
SendButtonClick
{
NSString
*
inputPhoneNumber
=
self
.
identityView
.
bindingPhoneNumber
.
text
;
if
(
inputPhoneNumber
.
length
==
0
)
{
[
self
ErrorMBProgressView
:
@"手机号不能为空"
];
return
;
}
if
(
!
[
HENLENSONG
isValidateMobile
:
inputPhoneNumber
])
{
[
self
ErrorMBProgressView
:
@"手机号码格式不正确"
];
return
;
}
[
self
RemoveMBProgressHUDLoding
];
//发送验证码
[[
NetworkRequestClassManager
Manager
]
NetworkWithDictionaryRequestWithURL
:[
NSString
stringWithFormat
:
@"%@%@"
,
ServerAddress
,
@"/system/sendSms"
]
WithRequestType
:
0
WithParameter
:
[
NSDictionary
dictionaryWithObjectsAndKeys
:
inputPhoneNumber
,
@"mobilephone"
,
nil
]
WithReturnValueBlock
:^
(
id
returnValue
)
{
// NSLog(@"%@",returnValue);
[
self
RemoveMBProgressHUDLoding
];
}
WithErrorCodeBlock
:^
(
id
errorCodeValue
)
{
}
WithFailureBlock
:^
(
id
error
)
{
// NSLog(@"%@",error);
[
self
RemoveMBProgressHUDLoding
];
}];
[
self
.
identityView
.
SendButton
setTitle
:
@"60"
forState
:
UIControlStateNormal
];
self
.
identityView
.
SendButton
.
enabled
=
NO
;
self
.
sendTimer
=
[
NSTimer
scheduledTimerWithTimeInterval
:
1
target
:
self
selector
:
@selector
(
SendbuttonChangetitle
)
userInfo
:
nil
repeats
:
YES
];
}
#pragma mark -倒计时
-
(
void
)
SendbuttonChangetitle
{
NSInteger
number
=
[
self
.
identityView
.
SendButton
.
currentTitle
integerValue
];
if
(
number
<=
0
)
{
[
self
.
identityView
.
SendButton
setTitle
:
@"发送"
forState
:
UIControlStateNormal
];
self
.
identityView
.
SendButton
.
enabled
=
YES
;
[
self
.
sendTimer
invalidate
];
return
;
}
number
--
;
[
self
.
identityView
.
SendButton
setTitle
:[
NSString
stringWithFormat
:
@"%ld"
,
number
]
forState
:
UIControlStateNormal
];
}
#pragma mark -返回登陆界面
-
(
void
)
BackloginButtonClick
{
[
UIView
animateWithDuration
:
0
.
2
animations
:
^
{
self
.
identityView
.
alpha
=
0
;
...
...
@@ -229,6 +286,7 @@
#pragma mark -下一步(重置密码界面)
-
(
void
)
NextButtonClick
{
[
self
.
sendTimer
invalidate
];
self
.
resetPasswordView
=
[[[
NSBundle
mainBundle
]
loadNibNamed
:
@"authenticateView"
owner
:
self
options
:
nil
]
lastObject
];
self
.
resetPasswordView
.
layer
.
masksToBounds
=
YES
;
self
.
resetPasswordView
.
layer
.
cornerRadius
=
10
;
...
...
@@ -249,9 +307,6 @@
-
(
void
)
ChangPassWordRequest
{
NSLog
(
@"%@"
,
self
.
resetPasswordView
.
newpass
.
text
);
NSLog
(
@"%@"
,
self
.
resetPasswordView
.
confirmNewpass
.
text
);
if
(
self
.
resetPasswordView
.
newpass
.
text
.
length
==
0
)
{
[
self
ErrorMBProgressView
:
@"新密码为空"
];
...
...
@@ -268,28 +323,17 @@
[
self
ErrorMBProgressView
:
@"两次密码不相同"
];
return
;
}
//调用短信发送接口
AFHTTPSessionManager
*
manager
=
[
AFHTTPSessionManager
manager
];
[
manager
.
requestSerializer
setValue
:
@"application/json;charset=utf-8"
forHTTPHeaderField
:
@"Content-Type"
];
[
manager
GET
:[
NSString
stringWithFormat
:
@"%@%@"
,
ServerAddress
,
@"com.gomore.opple.rest.system.RsSystemService#sendSms(1234)"
]
parameters
:
nil
progress
:
nil
success
:^
(
NSURLSessionDataTask
*
_Nonnull
task
,
id
_Nullable
responseObject
)
{
NSLog
(
@"%@"
,
responseObject
);
}
failure
:^
(
NSURLSessionDataTask
*
_Nullable
task
,
NSError
*
_Nonnull
error
)
{
NSLog
(
@"%@"
,
error
);
}];
[
self
CreateMBProgressHUDLoding
];
//重置密码接口
ResetPasswordRequest
*
passwrod
=
[[
ResetPasswordRequest
alloc
]
init
];
passwrod
.
Password
=
self
.
resetPasswordView
.
newpass
.
text
;
passwrod
.
Password
=
self
.
resetPasswordView
.
confirmNewpass
.
text
;
passwrod
.
Password
=
@"123456"
;
passwrod
.
username
=
@"sh1"
;
passwrod
.
smsCode
=
@"1234"
;
//验证码
[[
NetworkRequestClassManager
Manager
]
NetworkRequestWithURL
:[
NSString
stringWithFormat
:
@"%@%@"
,
ServerAddress
,
@"/employee/resetPassword"
]
WithRequestType
:
0
WithParameter
:
passwrod
WithReturnValueBlock
:^
(
id
returnValue
)
{
[
self
RemoveMBProgressHUDLoding
];
if
([
returnValue
[
@"code"
]
isEqualToNumber
:
@0
])
{
[
self
ErrorMBProgressView
:
returnValue
[
@"message"
]];
...
...
@@ -303,6 +347,8 @@
}
WithFailureBlock
:^
(
id
error
)
{
[
self
RemoveMBProgressHUDLoding
];
}];
}
...
...
Lighting/Class/ProductLibraryViewController.m
View file @
4a04cccf
...
...
@@ -42,9 +42,23 @@
self
.
view
.
backgroundColor
=
[
UIColor
blueColor
];
[
self
uiConfigAction
];
[
self
getScreeningdatas
];
}
#pragma mark -获取筛选数据
-
(
void
)
getScreeningdatas
{
}
#pragma mark -布局
-
(
void
)
uiConfigAction
{
...
...
Lighting/Lighting.xcodeproj/project.pbxproj
View file @
4a04cccf
...
...
@@ -70,6 +70,7 @@
29BB27801CD9DFD7009A0813
/* AboutViewController.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
29BB277F1CD9DFD7009A0813
/* AboutViewController.m */
;
};
29C584E91CDA249300C6F677
/* ProductCollectionViewCell.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
29C584E81CDA249200C6F677
/* ProductCollectionViewCell.m */
;
};
29C584ED1CDA429500C6F677
/* ProductDetailsViewController.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
29C584EC1CDA429500C6F677
/* ProductDetailsViewController.m */
;
};
29E28CE81CE0B91B00812A55
/* HENLENSONG.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
29E28CE71CE0B91B00812A55
/* HENLENSONG.m */
;
};
29EAAE8E1CDC3E8E00C4DBA2
/* BillingInfoView.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
29EAAE8D1CDC3E8E00C4DBA2
/* BillingInfoView.m */
;
};
29EAAE901CDC3E9700C4DBA2
/* BillingInfoView.xib in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
29EAAE8F1CDC3E9700C4DBA2
/* BillingInfoView.xib */
;
};
29EAAE951CDC414C00C4DBA2
/* SeceneLibraryCollectionViewCell.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
29EAAE941CDC414C00C4DBA2
/* SeceneLibraryCollectionViewCell.m */
;
};
...
...
@@ -201,6 +202,8 @@
29C584E81CDA249200C6F677
/* ProductCollectionViewCell.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
ProductCollectionViewCell.m
;
sourceTree
=
"<group>"
;
};
29C584EB1CDA429500C6F677
/* ProductDetailsViewController.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
ProductDetailsViewController.h
;
sourceTree
=
"<group>"
;
};
29C584EC1CDA429500C6F677
/* ProductDetailsViewController.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
ProductDetailsViewController.m
;
sourceTree
=
"<group>"
;
};
29E28CE61CE0B91B00812A55
/* HENLENSONG.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
HENLENSONG.h
;
sourceTree
=
"<group>"
;
};
29E28CE71CE0B91B00812A55
/* HENLENSONG.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
HENLENSONG.m
;
sourceTree
=
"<group>"
;
};
29EAAE8C1CDC3E8E00C4DBA2
/* BillingInfoView.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
BillingInfoView.h
;
sourceTree
=
"<group>"
;
};
29EAAE8D1CDC3E8E00C4DBA2
/* BillingInfoView.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
BillingInfoView.m
;
sourceTree
=
"<group>"
;
};
29EAAE8F1CDC3E9700C4DBA2
/* BillingInfoView.xib */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
file.xib
;
path
=
BillingInfoView.xib
;
sourceTree
=
"<group>"
;
};
...
...
@@ -321,6 +324,7 @@
2928F7DE1CD085430036D761
/* Tools */
=
{
isa
=
PBXGroup
;
children
=
(
29E28CE51CE0B90600812A55
/* Regularexpressions */
,
29EC33241CE06FD1005F0C13
/* Jastor */
,
29EC331C1CE02ADC005F0C13
/* popoverController */
,
29EAAEAB1CDCA28300C4DBA2
/* city.json */
,
...
...
@@ -739,6 +743,15 @@
name
=
view
;
sourceTree
=
"<group>"
;
};
29E28CE51CE0B90600812A55
/* Regularexpressions */
=
{
isa
=
PBXGroup
;
children
=
(
29E28CE61CE0B91B00812A55
/* HENLENSONG.h */
,
29E28CE71CE0B91B00812A55
/* HENLENSONG.m */
,
);
name
=
Regularexpressions
;
sourceTree
=
"<group>"
;
};
29EAAE911CDC412100C4DBA2
/* controller */
=
{
isa
=
PBXGroup
;
children
=
(
...
...
@@ -1042,6 +1055,7 @@
2928F83B1CD0A0CE0036D761
/* CustomTabbarController.m in Sources */
,
29EAAE8E1CDC3E8E00C4DBA2
/* BillingInfoView.m in Sources */
,
044708611CD7C1E800555827
/* MainSetViewController.m in Sources */
,
29E28CE81CE0B91B00812A55
/* HENLENSONG.m in Sources */
,
299249441CDB51B100786B1E
/* ModifyShippingAddressView.m in Sources */
,
2906B5D71CD89246000849B4
/* ClientDetailsTableViewCell.m in Sources */
,
29BB27801CD9DFD7009A0813
/* AboutViewController.m in Sources */
,
...
...
Lighting/Tools/HENLENSONG.h
0 → 100755
View file @
4a04cccf
//
// HENLENSONG.h
// chuangchaungyingxiao
//
// Created by ccapp on 14-8-19.
// Copyright (c) 2014年 ccapp. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface
HENLENSONG
:
NSObject
+
(
BOOL
)
isValidateEmail
:(
NSString
*
)
email
;
+
(
BOOL
)
isValidateMobile
:(
NSString
*
)
mobile
;
+
(
BOOL
)
isValidateCarNo
:(
NSString
*
)
carNo
;
+
(
BOOL
)
isRightdate
:(
NSString
*
)
date
;
+
(
BOOL
)
isRightNumber
:(
NSString
*
)
number
;
+
(
BOOL
)
isRightNameWithNumberAndEnglishAndHanZi
:(
NSString
*
)
msg
;
+
(
BOOL
)
isRightLetterBeginAndContainNumber
:(
NSString
*
)
string
;
@end
Lighting/Tools/HENLENSONG.m
0 → 100755
View file @
4a04cccf
//
// HENLENSONG.m
// chuangchaungyingxiao
//
// Created by ccapp on 14-8-19.
// Copyright (c) 2014年 ccapp. All rights reserved.
//
#import "HENLENSONG.h"
@implementation
HENLENSONG
/*邮箱验证 MODIFIED BY HELENSONG*/
+
(
BOOL
)
isValidateEmail
:(
NSString
*
)
email
{
NSString
*
emailRegex
=
@"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+
\\
.[A-Za-z]{2,4}"
;
NSPredicate
*
emailTest
=
[
NSPredicate
predicateWithFormat
:
@"SELF MATCHES %@"
,
emailRegex
];
return
[
emailTest
evaluateWithObject
:
email
];
}
/*手机号码验证 MODIFIED BY HELENSONG*/
+
(
BOOL
)
isValidateMobile
:(
NSString
*
)
mobile
{
//手机号以13, 15,18开头,八个 \d 数字字符
NSString
*
phoneRegex
=
@"^((13[0-9])|(14[0-9])|(15[^4,
\\
D])|(17[0,0-9])|(18[0,0-9]))
\\
d{8}$"
;
NSPredicate
*
phoneTest
=
[
NSPredicate
predicateWithFormat
:
@"SELF MATCHES %@"
,
phoneRegex
];
// NSLog(@"phoneTest is %@",phoneTest);
return
[
phoneTest
evaluateWithObject
:
mobile
];
}
//^[(86)|0]?(13\d{9})|(15\d{9})|(17\d{9})|(18\d{9})$
//^((13[0-9])|(15[^4,\\D])|(17[0-9])|(18[0,0-9]))\\d{8}$
/*车牌号验证 MODIFIED BY HELENSONG*/
+
(
BOOL
)
isValidateCarNo
:(
NSString
*
)
carNo
{
NSString
*
carRegex
=
@"^[A-Za-z]{1}[A-Za-z_0-9]{5}$"
;
NSPredicate
*
carTest
=
[
NSPredicate
predicateWithFormat
:
@"SELF MATCHES %@"
,
carRegex
];
// NSLog(@"carTest is %@",carTest);
return
[
carTest
evaluateWithObject
:
carNo
];
}
+
(
BOOL
)
isRightdate
:(
NSString
*
)
date
{
NSString
*
dateRegex
=
@"^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$"
;
NSPredicate
*
dateTest
=
[
NSPredicate
predicateWithFormat
:
@"SELF MATCHES %@"
,
dateRegex
];
return
[
dateTest
evaluateWithObject
:
date
];
}
//
+
(
BOOL
)
isRightNumber
:(
NSString
*
)
number
{
NSRegularExpression
*
regex2
=
[
NSRegularExpression
regularExpressionWithPattern
:
@"^[0-9]*$"
options
:
0
error
:
nil
];
if
(
regex2
)
{
//对象进行匹配
NSTextCheckingResult
*
result2
=
[
regex2
firstMatchInString
:
number
options
:
0
range
:
NSMakeRange
(
0
,
[
number
length
])];
if
(
result2
)
{
return
YES
;
}
else
{
return
NO
;
}
}
else
return
NO
;
}
+
(
BOOL
)
isRightNameWithNumberAndEnglishAndHanZi
:(
NSString
*
)
msg
{
NSRegularExpression
*
regex2
=
[
NSRegularExpression
regularExpressionWithPattern
:
@"[\u4e00-\u9fa5_a-zA-Z0-9_]{4,16}"
options
:
0
error
:
nil
];
if
(
regex2
)
{
//对象进行匹配
NSTextCheckingResult
*
result2
=
[
regex2
firstMatchInString
:
msg
options
:
0
range
:
NSMakeRange
(
0
,
[
msg
length
])];
if
(
result2
)
{
return
YES
;
}
else
{
return
NO
;
}
}
else
return
NO
;
}
+
(
BOOL
)
isRightLetterBeginAndContainNumber
:(
NSString
*
)
string
{
NSRegularExpression
*
regex2
=
[
NSRegularExpression
regularExpressionWithPattern
:
@"^[a-zA-Z][a-zA-Z0-9]*$"
options
:
0
error
:
nil
];
if
(
regex2
)
{
//对象进行匹配
NSTextCheckingResult
*
result2
=
[
regex2
firstMatchInString
:
string
options
:
0
range
:
NSMakeRange
(
0
,
[
string
length
])];
if
(
result2
)
{
return
YES
;
}
else
{
return
NO
;
}
}
else
return
NO
;
}
@end
Lighting/Tools/NetworkRequestClassManager.h
View file @
4a04cccf
...
...
@@ -40,7 +40,7 @@ typedef enum {
*
* @param requestURLString 网址
* @param requestType 请求类型
* @param parameter
参数
* @param parameter
JAstor对象
* @param sueecssBlock 成功回调
* @param errorCodeBlock 错误编码回调
* @param failureBlock 失败回调
...
...
@@ -57,7 +57,22 @@ typedef enum {
/**
* 网络请求
*
* @param requestURLString 网址
* @param requestType 请求类型
* @param parameter 字典对象
* @param sueecssBlock 成功回调
* @param errorCodeBlock 错误编码回调
* @param failureBlock 失败回调
*/
-
(
void
)
NetworkWithDictionaryRequestWithURL
:(
NSString
*
)
requestURLString
WithRequestType
:
(
NetworkRequestType
)
requestType
WithParameter
:
(
NSDictionary
*
)
parameter
WithReturnValueBlock
:
(
ReturnValueBlock
)
successBlock
WithErrorCodeBlock
:
(
ErrorCodeBlock
)
errorCodeBlock
WithFailureBlock
:
(
FailureBlock
)
failureBlock
;
...
...
Lighting/Tools/NetworkRequestClassManager.m
View file @
4a04cccf
...
...
@@ -99,8 +99,61 @@ static NetworkRequestClassManager *manager = nil;
}
/**
* 网络请求
*
* @param requestURLString 网址
* @param requestType 请求类型
* @param parameter 字典对象
* @param sueecssBlock 成功回调
* @param errorCodeBlock 错误编码回调
* @param failureBlock 失败回调
*/
-
(
void
)
NetworkWithDictionaryRequestWithURL
:
(
NSString
*
)
requestURLString
WithRequestType
:
(
NetworkRequestType
)
requestType
WithParameter
:
(
NSDictionary
*
)
parameter
WithReturnValueBlock
:
(
ReturnValueBlock
)
successBlock
WithErrorCodeBlock
:
(
ErrorCodeBlock
)
errorCodeBlock
WithFailureBlock
:
(
FailureBlock
)
failureBlock
{
AFHTTPSessionManager
*
manager
=
[
AFHTTPSessionManager
manager
];
manager
.
responseSerializer
=
[
AFJSONResponseSerializer
serializer
];
manager
.
requestSerializer
=
[
AFJSONRequestSerializer
serializer
];
manager
.
requestSerializer
.
timeoutInterval
=
10
.
0
f
;
[
manager
.
requestSerializer
setValue
:
@"application/json;charset=utf-8"
forHTTPHeaderField
:
@"Content-Type"
];
//网络检测
if
(
SHARED_APPDELEGATE
.
Networkstatus
==
false
)
{
errorCodeBlock
(
BROKEN
);
return
;
}
if
(
requestType
==
0
)
{
[
manager
POST
:
requestURLString
parameters
:
parameter
progress
:
nil
success
:^
(
NSURLSessionDataTask
*
_Nonnull
task
,
id
_Nullable
responseObject
)
{
successBlock
(
responseObject
);
}
failure
:^
(
NSURLSessionDataTask
*
_Nullable
task
,
NSError
*
_Nonnull
error
)
{
failureBlock
(
error
);
}];
}
else
if
(
requestType
==
1
){
[
manager
GET
:
requestURLString
parameters
:
parameter
progress
:
nil
success
:^
(
NSURLSessionDataTask
*
_Nonnull
task
,
id
_Nullable
responseObject
)
{
successBlock
(
responseObject
);
}
failure
:^
(
NSURLSessionDataTask
*
_Nullable
task
,
NSError
*
_Nonnull
error
)
{
failureBlock
(
error
);
}];
}
}
...
...
Lighting/Tools/PrefixHeader.pch
View file @
4a04cccf
...
...
@@ -22,6 +22,7 @@
#import "PopoverViewController.h"
#import "Jastor.h"
#import "opple_objc_json_client.h"
#import "HENLENSONG.h"
// Include any system framework and library headers here that should be included in all compilation units.
// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment