Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
陈高翔
/
DreamSleep-iOS
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit ca99003f
由
cgx
编写于
2022-07-20 16:28:15 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
引入NSObject+AutoCancelRequest,处理页面退出后自动取消网络(暂时只处理安睡准备模块)
1 个父辈
8d8999a5
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
136 行增加
和
19 行删除
DreamSleep/DreamSleep.xcodeproj/project.pbxproj
DreamSleep/DreamSleep/Basement/DSConfig/PrefixHeader.pch
DreamSleep/DreamSleep/Basement/Network/DSNetworkTool.m
DreamSleep/DreamSleep/Basement/Network/YRAutoCancelRequest/NSObject+AutoCancelRequest.h
DreamSleep/DreamSleep/Basement/Network/YRAutoCancelRequest/NSObject+AutoCancelRequest.m
DreamSleep/DreamSleep/Class/AISleepModule/SleepReady/Controller/ReadyListController.m
DreamSleep/DreamSleep/Class/AISleepModule/SleepReady/Controller/SleepReadyController.m
DreamSleep/DreamSleep.xcodeproj/project.pbxproj
查看文件 @
ca99003
...
...
@@ -50,6 +50,7 @@
D02E85882882A594002DAD7E /* PrepareItemsCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D02E85872882A594002DAD7E /* PrepareItemsCell.m */; };
D030C1B8284775930014946F /* RelaxTrainController.m in Sources */ = {isa = PBXBuildFile; fileRef = D030C1B7284775930014946F /* RelaxTrainController.m */; };
D0336163285035AB005573CF /* DailyBgView.m in Sources */ = {isa = PBXBuildFile; fileRef = D0336162285035AB005573CF /* DailyBgView.m */; };
D03559E42887DE4400168402 /* NSObject+AutoCancelRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = D03559E32887DE4400168402 /* NSObject+AutoCancelRequest.m */; };
D037B11228752A7E00236753 /* IndividualController.m in Sources */ = {isa = PBXBuildFile; fileRef = D037B11128752A7E00236753 /* IndividualController.m */; };
D037B1162875635F00236753 /* ArcPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = D037B1142875635F00236753 /* ArcPath.swift */; };
D037B1172875635F00236753 /* DarwArcView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D037B1152875635F00236753 /* DarwArcView.swift */; };
...
...
@@ -355,6 +356,8 @@
D030C1B7284775930014946F /* RelaxTrainController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RelaxTrainController.m; sourceTree = "<group>"; };
D0336161285035AB005573CF /* DailyBgView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DailyBgView.h; sourceTree = "<group>"; };
D0336162285035AB005573CF /* DailyBgView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DailyBgView.m; sourceTree = "<group>"; };
D03559E22887DE4400168402 /* NSObject+AutoCancelRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+AutoCancelRequest.h"; sourceTree = "<group>"; };
D03559E32887DE4400168402 /* NSObject+AutoCancelRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+AutoCancelRequest.m"; sourceTree = "<group>"; };
D037B11028752A7E00236753 /* IndividualController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IndividualController.h; sourceTree = "<group>"; };
D037B11128752A7E00236753 /* IndividualController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IndividualController.m; sourceTree = "<group>"; };
D037B1132875635E00236753 /* DreamSleep-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "DreamSleep-Bridging-Header.h"; sourceTree = "<group>"; };
...
...
@@ -1075,6 +1078,7 @@
D00A63562824C42300AFFEAA /* DSNetworkCache.m */,
D027EE2427FB3DC0004BBA61 /* NetLoadingStateView.h */,
D027EE2527FB3DC0004BBA61 /* NetLoadingStateView.m */,
D03559E12887DE4400168402 /* YRAutoCancelRequest */,
);
path = Network;
sourceTree = "<group>";
...
...
@@ -1127,6 +1131,15 @@
path = SleepReady;
sourceTree = "<group>";
};
D03559E12887DE4400168402 /* YRAutoCancelRequest */ = {
isa = PBXGroup;
children = (
D03559E22887DE4400168402 /* NSObject+AutoCancelRequest.h */,
D03559E32887DE4400168402 /* NSObject+AutoCancelRequest.m */,
);
path = YRAutoCancelRequest;
sourceTree = "<group>";
};
D043DD52285B101A0043A4CE /* AppUpdate */ = {
isa = PBXGroup;
children = (
...
...
@@ -2369,6 +2382,7 @@
D030C1B8284775930014946F /* RelaxTrainController.m in Sources */,
D07257F0286BE5510080F458 /* GoodSleepHeadView.m in Sources */,
D049679D2834E1AB00FB81E5 /* ProfileHeaderView.m in Sources */,
D03559E42887DE4400168402 /* NSObject+AutoCancelRequest.m in Sources */,
D0B1124A28631D8C00A496FB /* DSSlider.m in Sources */,
D0336163285035AB005573CF /* DailyBgView.m in Sources */,
D0FAC421281B817D00D4B859 /* GKPhotoView.m in Sources */,
...
...
DreamSleep/DreamSleep/Basement/DSConfig/PrefixHeader.pch
查看文件 @
ca99003
...
...
@@ -45,4 +45,6 @@
#import "DsTaskManager.h"
#import "NSObject+AutoCancelRequest.h"
#endif /* PrefixHeader_pch */
DreamSleep/DreamSleep/Basement/Network/DSNetworkTool.m
查看文件 @
ca99003
...
...
@@ -110,11 +110,13 @@ NSString * const NetworkUnableError = @"网络不给力,请检查您的网络
}
else
if
(
error
.
code
==
-
1016
)
{
netErrMessage
=
ServerDataFormatError
;
}
if
(
hasFailInfo
)
{
view
?
[
DSProgressHUD
showDetailInfo
:
netErrMessage
inView
:
view
]
:
[
DSProgressHUD
showDetailInfo
:
netErrMessage
];
}
}
else
{
// 手动取消网络不弹框提示
}
failure
(@{
@"errorCode"
:
@
(
DSResCodeNetFail
),
@"errMessage"
:
netErrMessage
});
if
(
hasFailInfo
)
{
view
?
[
DSProgressHUD
showDetailInfo
:
netErrMessage
inView
:
view
]
:
[
DSProgressHUD
showDetailInfo
:
netErrMessage
];
}
}
}];
[
dataTask
resume
];
...
...
DreamSleep/DreamSleep/Basement/Network/YRAutoCancelRequest/NSObject+AutoCancelRequest.h
0 → 100644
查看文件 @
ca99003
//
// NSObject+AutoCancelRequest.m
//
// Created by YueRuo on 2017/3/3.
// Copyright © 2017年 YueRuo. All rights reserved.
//
#import <Foundation/Foundation.h>
/*!
* @brief help to auto cancel request when vc or manager destoryed
*
*/
@interface
NSObject
(
AutoCancelRequest
)
/*!
* @brief add request to auto cancel when obj dealloc
* @note will call request's cancel method , so the request must have cancel method..
*/
-
(
void
)
autoCancelRequestOnDealloc
:(
id
)
request
;
@end
DreamSleep/DreamSleep/Basement/Network/YRAutoCancelRequest/NSObject+AutoCancelRequest.m
0 → 100644
查看文件 @
ca99003
//
// NSObject+AutoCancelRequest.m
//
// Created by YueRuo on 2017/3/3.
// Copyright © 2017年 YueRuo. All rights reserved.
//
#import "NSObject+AutoCancelRequest.h"
#import <objc/runtime.h>
@interface
YRWeakRequest
:
NSObject
@property
(
weak
,
nonatomic
)
id
request
;
@end
@implementation
YRWeakRequest
@end
@interface
YRDeallocRequests
:
NSObject
@property
(
strong
,
nonatomic
)
NSMutableArray
<
YRWeakRequest
*>
*
weakRequests
;
@property
(
strong
,
nonatomic
)
NSLock
*
lock
;
@end
@implementation
YRDeallocRequests
-
(
instancetype
)
init
{
if
(
self
=
[
super
init
])
{
_weakRequests
=
[
NSMutableArray
arrayWithCapacity
:
20
];
_lock
=
[[
NSLock
alloc
]
init
];
}
return
self
;
}
-
(
void
)
addRequest
:
(
YRWeakRequest
*
)
request
{
if
(
!
request
||!
request
.
request
)
{
return
;
}
[
_lock
lock
];
[
self
.
weakRequests
addObject
:
request
];
[
_lock
unlock
];
}
-
(
void
)
clearDeallocRequest
{
[
_lock
lock
];
NSInteger
count
=
self
.
weakRequests
.
count
;
for
(
NSInteger
i
=
count
-
1
;
i
>
0
;
i
--
)
{
YRWeakRequest
*
weakRequest
=
self
.
weakRequests
[
i
];
if
(
!
weakRequest
.
request
)
{
[
self
.
weakRequests
removeObject
:
weakRequest
];
}
}
[
_lock
unlock
];
}
-
(
void
)
dealloc
{
for
(
YRWeakRequest
*
weakRequest
in
_weakRequests
)
{
if
([
weakRequest
.
request
respondsToSelector
:
@selector
(
cancel
)])
{
[
weakRequest
.
request
performSelector
:
@selector
(
cancel
)];
}
}
}
@end
@implementation
NSObject
(
YRRequest
)
-
(
YRDeallocRequests
*
)
deallocRequests
{
YRDeallocRequests
*
requests
=
objc_getAssociatedObject
(
self
,
_cmd
);
if
(
!
requests
)
{
requests
=
[[
YRDeallocRequests
alloc
]
init
];
objc_setAssociatedObject
(
self
,
_cmd
,
requests
,
OBJC_ASSOCIATION_RETAIN_NONATOMIC
);
}
return
requests
;
}
-
(
void
)
autoCancelRequestOnDealloc
:
(
id
)
request
{
[[
self
deallocRequests
]
clearDeallocRequest
];
YRWeakRequest
*
weakRequest
=
[[
YRWeakRequest
alloc
]
init
];
weakRequest
.
request
=
request
;
[[
self
deallocRequests
]
addRequest
:
weakRequest
];
}
@end
DreamSleep/DreamSleep/Class/AISleepModule/SleepReady/Controller/ReadyListController.m
查看文件 @
ca99003
...
...
@@ -42,21 +42,23 @@
}
-
(
void
)
queryPreparePeaceListRequest
{
[
SleepReadyRequestModel
queryPreparePeaceListWithCompletion
:
^
(
SleepReadyRequestModel
*
_Nonnull
requestModel
)
{
WS
(
weakSelf
);
NSURLSessionDataTask
*
task
=
[
SleepReadyRequestModel
queryPreparePeaceListWithCompletion
:
^
(
SleepReadyRequestModel
*
_Nonnull
requestModel
)
{
if
(
requestModel
.
resCode
==
DSResCodeSuccess
)
{
s
elf
.
exceptionView
.
hidden
=
YES
;
weakS
elf
.
exceptionView
.
hidden
=
YES
;
s
elf
.
prepare_items
=
requestModel
.
prepare_items
;
[
self
.
view
addSubview
:
s
elf
.
relaxItemsView
];
[
self
.
view
addSubview
:
s
elf
.
prepareItemsView
];
weakS
elf
.
prepare_items
=
requestModel
.
prepare_items
;
[
weakSelf
.
view
addSubview
:
weakS
elf
.
relaxItemsView
];
[
weakSelf
.
view
addSubview
:
weakS
elf
.
prepareItemsView
];
[
s
elf
.
relaxItemsView
adjustRelax
:
requestModel
.
relax_items
relaxTime
:
requestModel
.
relax_time
];
[
weakS
elf
.
relaxItemsView
adjustRelax
:
requestModel
.
relax_items
relaxTime
:
requestModel
.
relax_time
];
}
else
{
s
elf
.
exceptionView
.
hidden
=
NO
;
[
s
elf
.
exceptionView
showServerErrInfo
:
requestModel
.
errMessage
];
weakS
elf
.
exceptionView
.
hidden
=
NO
;
[
weakS
elf
.
exceptionView
showServerErrInfo
:
requestModel
.
errMessage
];
}
}];
[
self
autoCancelRequestOnDealloc
:
task
];
}
#pragma mark - UITableViewDataSource && UITableViewDelegate
...
...
DreamSleep/DreamSleep/Class/AISleepModule/SleepReady/Controller/SleepReadyController.m
查看文件 @
ca99003
...
...
@@ -43,22 +43,25 @@
}
-
(
void
)
queryRelaxWhiteNoiseType
{
[
WhiteNoiseRequestModel
queryRelaxWhiteNoiseTypeWithCompletion
:
^
(
WhiteNoiseRequestModel
*
_Nonnull
requestModel
)
{
WS
(
weakSelf
);
NSURLSessionDataTask
*
task
=
[
WhiteNoiseRequestModel
queryRelaxWhiteNoiseTypeWithCompletion
:
^
(
WhiteNoiseRequestModel
*
_Nonnull
requestModel
)
{
if
(
requestModel
.
resCode
==
DSResCodeSuccess
)
{
DSLog
(
@"获取白噪音类型请求成功..."
);
[
self
.
musicView
refreshNoiseTypeData
:
requestModel
.
noiseTypeArr
];
[
weakSelf
.
musicView
refreshNoiseTypeData
:
requestModel
.
noiseTypeArr
];
}
}];
[
self
autoCancelRequestOnDealloc
:
task
];
}
-
(
void
)
getUserPrepareSleepItemsRequest
{
[
SleepReadyRequestModel
userPrepareSleepItemsWithCompletion
:
^
(
SleepReadyRequestModel
*
_Nonnull
requestModel
)
{
WS
(
weakSelf
);
NSURLSessionDataTask
*
task
=
[
SleepReadyRequestModel
userPrepareSleepItemsWithCompletion
:
^
(
SleepReadyRequestModel
*
_Nonnull
requestModel
)
{
if
(
requestModel
.
resCode
==
DSResCodeSuccess
)
{
s
elf
.
adjustedItems
=
requestModel
.
relax_items
;
[
self
.
startReadyView
updateAdjustView
:
s
elf
.
adjustedItems
];
[
s
elf
.
startReadyView
updateAdviceMessage
:
requestModel
.
advice_message
];
weakS
elf
.
adjustedItems
=
requestModel
.
relax_items
;
[
weakSelf
.
startReadyView
updateAdjustView
:
weakS
elf
.
adjustedItems
];
[
weakS
elf
.
startReadyView
updateAdviceMessage
:
requestModel
.
advice_message
];
}
}];
[
self
autoCancelRequestOnDealloc
:
task
];
}
-
(
void
)
backAction
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论