Skip to content

Commit 24a8c93

Browse files
committed
optimize enumerate upload list
1 parent 03c64d7 commit 24a8c93

File tree

2 files changed

+37
-38
lines changed

2 files changed

+37
-38
lines changed

QiniuSDK/Storage/QNUploadInfoV1.m

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -99,26 +99,26 @@ - (void)clearUploadState {
9999
return;
100100
}
101101

102-
for (QNUploadBlock *block in self.blockList) {
102+
[self.blockList enumerateObjectsUsingBlock:^(QNUploadBlock *block, NSUInteger idx, BOOL * _Nonnull stop) {
103103
[block clearUploadState];
104-
}
104+
}];
105105
}
106106

107107
- (void)checkInfoStateAndUpdate {
108-
for (QNUploadBlock *block in self.blockList) {
108+
[self.blockList enumerateObjectsUsingBlock:^(QNUploadBlock *block, NSUInteger idx, BOOL * _Nonnull stop) {
109109
[block checkInfoStateAndUpdate];
110-
}
110+
}];
111111
}
112112

113113
- (long long)uploadSize {
114114
if (self.blockList == nil || self.blockList.count == 0) {
115115
return 0;
116116
}
117117

118-
long long uploadSize = 0;
119-
for (QNUploadBlock *block in self.blockList) {
118+
__block long long uploadSize = 0;
119+
[self.blockList enumerateObjectsUsingBlock:^(QNUploadBlock *block, NSUInteger idx, BOOL * _Nonnull stop) {
120120
uploadSize += [block uploadSize];
121-
}
121+
}];
122122
return uploadSize;
123123
}
124124

@@ -131,13 +131,13 @@ - (BOOL)isAllUploaded {
131131
return true;
132132
}
133133

134-
BOOL isAllUploaded = true;
135-
for (QNUploadBlock *block in self.blockList) {
134+
__block BOOL isAllUploaded = true;
135+
[self.blockList enumerateObjectsUsingBlock:^(QNUploadBlock *block, NSUInteger idx, BOOL * _Nonnull stop) {
136136
if (!block.isCompleted) {
137137
isAllUploaded = false;
138-
break;
138+
*stop = true;
139139
}
140-
}
140+
}];
141141
return isAllUploaded;
142142
}
143143

@@ -151,9 +151,9 @@ - (NSDictionary *)toDictionary {
151151

152152
if (self.blockList != nil && self.blockList.count != 0) {
153153
NSMutableArray *blockInfoList = [NSMutableArray array];
154-
for (QNUploadBlock *block in self.blockList) {
154+
[self.blockList enumerateObjectsUsingBlock:^(QNUploadBlock *block, NSUInteger idx, BOOL * _Nonnull stop) {
155155
[blockInfoList addObject:[block toDictionary]];
156-
}
156+
}];
157157
[dictionary setObject:[blockInfoList copy] forKey:@"blockList"];
158158
}
159159

@@ -224,14 +224,14 @@ - (QNUploadBlock *)nextUploadBlockFormBlockList {
224224
return nil;
225225
}
226226

227-
QNUploadBlock *block = nil;
228-
for (QNUploadBlock *blockP in self.blockList) {
227+
__block QNUploadBlock *block = nil;
228+
[self.blockList enumerateObjectsUsingBlock:^(QNUploadBlock *blockP, NSUInteger idx, BOOL * _Nonnull stop) {
229229
QNUploadData *data = [blockP nextUploadDataWithoutCheckData];
230230
if (data != nil) {
231231
block = blockP;
232-
break;
232+
*stop = true;
233233
}
234-
}
234+
}];
235235
return block;
236236
}
237237

@@ -301,11 +301,11 @@ - (QNUploadData *)nextUploadData:(QNUploadBlock *)block {
301301
}
302302

303303
NSMutableArray *contexts = [NSMutableArray array];
304-
for (QNUploadBlock *block in self.blockList) {
304+
[self.blockList enumerateObjectsUsingBlock:^(QNUploadBlock *block, NSUInteger idx, BOOL * _Nonnull stop) {
305305
if (block.context && block.context.length > 0) {
306306
[contexts addObject:block.context];
307307
}
308-
}
308+
}];
309309
return [contexts copy];
310310
}
311311

QiniuSDK/Storage/QNUploadInfoV2.m

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -112,26 +112,26 @@ - (void)clearUploadState {
112112
return;
113113
}
114114

115-
for (QNUploadData *data in self.dataList) {
115+
[self.dataList enumerateObjectsUsingBlock:^(QNUploadData *data, NSUInteger idx, BOOL * _Nonnull stop) {
116116
[data clearUploadState];
117-
}
117+
}];
118118
}
119119

120120
- (void)checkInfoStateAndUpdate {
121-
for (QNUploadData *data in self.dataList) {
121+
[self.dataList enumerateObjectsUsingBlock:^(QNUploadData *data, NSUInteger idx, BOOL * _Nonnull stop) {
122122
[data checkStateAndUpdate];
123-
}
123+
}];
124124
}
125125

126126
- (long long)uploadSize {
127127
if (self.dataList == nil || self.dataList.count == 0) {
128128
return 0;
129129
}
130130

131-
long long uploadSize = 0;
132-
for (QNUploadData *data in self.dataList) {
131+
__block long long uploadSize = 0;
132+
[self.dataList enumerateObjectsUsingBlock:^(QNUploadData *data, NSUInteger idx, BOOL * _Nonnull stop) {
133133
uploadSize += [data uploadSize];
134-
}
134+
}];
135135
return uploadSize;
136136
}
137137

@@ -145,12 +145,11 @@ - (BOOL)isAllUploaded {
145145
}
146146

147147
BOOL isAllUploaded = true;
148-
for (QNUploadData *data in self.dataList) {
148+
[self.dataList enumerateObjectsUsingBlock:^(QNUploadData *data, NSUInteger idx, BOOL * _Nonnull stop) {
149149
if (!data.isUploaded) {
150-
isAllUploaded = false;
151-
break;
150+
*stop = true;
152151
}
153-
}
152+
}];
154153
return isAllUploaded;
155154
}
156155

@@ -166,9 +165,9 @@ - (NSDictionary *)toDictionary {
166165

167166
if (self.dataList != nil && self.dataList.count != 0) {
168167
NSMutableArray *blockInfoList = [NSMutableArray array];
169-
for (QNUploadData *data in self.dataList) {
168+
[self.dataList enumerateObjectsUsingBlock:^(QNUploadData *data, NSUInteger idx, BOOL * _Nonnull stop) {
170169
[blockInfoList addObject:[data toDictionary]];
171-
}
170+
}];
172171
[dictionary setObject:[blockInfoList copy] forKey:@"dataList"];
173172
}
174173

@@ -244,13 +243,13 @@ - (QNUploadData *)nextUploadDataFormDataList {
244243
return nil;
245244
}
246245

247-
QNUploadData *data = nil;
248-
for (QNUploadData *dataP in self.dataList) {
246+
__block QNUploadData *data = nil;
247+
[self.dataList enumerateObjectsUsingBlock:^(QNUploadData *dataP, NSUInteger idx, BOOL * _Nonnull stop) {
249248
if ([dataP needToUpload]) {
250249
data = dataP;
251-
break;
250+
*stop = true;
252251
}
253-
}
252+
}];
254253

255254
return data;
256255
}
@@ -307,12 +306,12 @@ - (QNUploadData *)loadData:(QNUploadData *)data error:(NSError **)error {
307306
}
308307

309308
NSMutableArray *infoArray = [NSMutableArray array];
310-
for (QNUploadData *data in self.dataList) {
309+
[self.dataList enumerateObjectsUsingBlock:^(QNUploadData *data, NSUInteger idx, BOOL * _Nonnull stop) {
311310
if (data.state == QNUploadStateComplete && data.etag != nil) {
312311
[infoArray addObject:@{@"etag" : data.etag,
313312
@"partNumber" : @([self getPartIndexOfData:data])}];
314313
}
315-
}
314+
}];
316315

317316
return [infoArray copy];
318317
}

0 commit comments

Comments
 (0)