Skip to content
This repository was archived by the owner on Feb 2, 2023. It is now read-only.

Commit b9597ff

Browse files
committed
Merge pull request #461 from facebook/memoryMethods
Updating API names for network range and memory culling before ASDK 1.2 tag.
2 parents 5d0a284 + e3f0e66 commit b9597ff

File tree

10 files changed

+50
-47
lines changed

10 files changed

+50
-47
lines changed

AsyncDisplayKit/ASDisplayNode+Subclasses.h

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,9 @@
190190
*
191191
* @discussion Subclasses may override this method to be notified when they should begin to fetch data. Fetching
192192
* should be done asynchronously. The node is also responsible for managing the memory of any data.
193+
* The data may be remote and accessed via the network, but could also be a local database query.
193194
*/
194-
- (void)fetchRemoteData ASDISPLAYNODE_REQUIRES_SUPER;
195+
- (void)fetchData ASDISPLAYNODE_REQUIRES_SUPER;
195196

196197
/**
197198
* @abstract Indicates that the receiver is about to display its subnodes. This method is not called if there are no
@@ -323,18 +324,18 @@
323324
* Provides an opportunity to clear backing store and other memory-intensive intermediates, such as text layout managers
324325
* on the current node.
325326
*
326-
* @discussion Called by -recursivelyClearRendering. Base class implements self.contents = nil, clearing any backing
327+
* @discussion Called by -recursivelyClearContents. Base class implements self.contents = nil, clearing any backing
327328
* store, for asynchronous regeneration when needed.
328329
*/
329-
- (void)clearRendering ASDISPLAYNODE_REQUIRES_SUPER;
330+
- (void)clearContents ASDISPLAYNODE_REQUIRES_SUPER;
330331

331332
/**
332-
* Provides an opportunity to clear any remote data on the current node.
333+
* Provides an opportunity to clear any fetched data (e.g. remote / network or database-queried) on the current node.
333334
*
334-
* @discussion This will not clear data recursively for all subnodes. Either call -recursivelyClearRemoteData or
335-
* selectively clear remote data.
335+
* @discussion This will not clear data recursively for all subnodes. Either call -recursivelyClearFetchedData or
336+
* selectively clear fetched data.
336337
*/
337-
- (void)clearRemoteData ASDISPLAYNODE_REQUIRES_SUPER;
338+
- (void)clearFetchedData ASDISPLAYNODE_REQUIRES_SUPER;
338339

339340

340341
/** @name Placeholders */

AsyncDisplayKit/ASDisplayNode.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ typedef CALayer *(^ASDisplayNodeLayerBlock)();
312312
- (void)recursivelySetDisplaySuspended:(BOOL)flag;
313313

314314
/**
315-
* @abstract Calls -clearRendering on the receiver and its subnode hierarchy.
315+
* @abstract Calls -clearContents on the receiver and its subnode hierarchy.
316316
*
317317
* @discussion Clears backing stores and other memory-intensive intermediates.
318318
* If the node is removed from a visible hierarchy and then re-added, it will automatically trigger a new asynchronous display,
@@ -322,27 +322,27 @@ typedef CALayer *(^ASDisplayNodeLayerBlock)();
322322
* @see displaySuspended and setNeedsDisplay
323323
*/
324324

325-
- (void)recursivelyClearRendering;
325+
- (void)recursivelyClearContents;
326326

327327
/**
328-
* @abstract Calls -clearRemoteData on the receiver and its subnode hierarchy.
328+
* @abstract Calls -clearFetchedData on the receiver and its subnode hierarchy.
329329
*
330330
* @discussion Clears any memory-intensive fetched content.
331331
* This method is used to notify the node that it should purge any content that is both expensive to fetch and to
332332
* retain in memory.
333333
*
334-
* @see clearRemoteData and fetchRemoteData
334+
* @see clearFetchedData and fetchData
335335
*/
336-
- (void)recursivelyClearRemoteData;
336+
- (void)recursivelyClearFetchedData;
337337

338338
/**
339-
* @abstract Calls -fetchRemoteData on the receiver and its subnode hierarchy.
339+
* @abstract Calls -fetchData on the receiver and its subnode hierarchy.
340340
*
341341
* @discussion Fetches content from remote sources for the current node and all subnodes.
342342
*
343-
* @see fetchRemoteData and clearRemoteData
343+
* @see fetchData and clearFetchedData
344344
*/
345-
- (void)recursivelyFetchRemoteData;
345+
- (void)recursivelyFetchData;
346346

347347
/**
348348
* @abstract Toggle displaying a placeholder over the node that covers content until the node and all subnodes are

AsyncDisplayKit/ASDisplayNode.mm

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ + (void)initialize
9090
// Subclasses should never override these
9191
ASDisplayNodeAssert(!ASDisplayNodeSubclassOverridesSelector(self, @selector(calculatedSize)), @"Subclass %@ must not override calculatedSize method", NSStringFromClass(self));
9292
ASDisplayNodeAssert(!ASDisplayNodeSubclassOverridesSelector(self, @selector(measure:)), @"Subclass %@ must not override measure method", NSStringFromClass(self));
93-
ASDisplayNodeAssert(!ASDisplayNodeSubclassOverridesSelector(self, @selector(recursivelyClearRendering)), @"Subclass %@ must not override recursivelyClearRendering method", NSStringFromClass(self));
94-
ASDisplayNodeAssert(!ASDisplayNodeSubclassOverridesSelector(self, @selector(recursivelyClearRemoteData)), @"Subclass %@ must not override recursivelyClearRemoteData method", NSStringFromClass(self));
93+
ASDisplayNodeAssert(!ASDisplayNodeSubclassOverridesSelector(self, @selector(recursivelyClearContents)), @"Subclass %@ must not override recursivelyClearContents method", NSStringFromClass(self));
94+
ASDisplayNodeAssert(!ASDisplayNodeSubclassOverridesSelector(self, @selector(recursivelyClearFetchedData)), @"Subclass %@ must not override recursivelyClearFetchedData method", NSStringFromClass(self));
9595
}
9696

9797
+ (BOOL)layerBackedNodesEnabled
@@ -1331,44 +1331,44 @@ - (void)didExitHierarchy
13311331
[self __exitedHierarchy];
13321332
}
13331333

1334-
- (void)clearRendering
1334+
- (void)clearContents
13351335
{
13361336
self.layer.contents = nil;
13371337
_placeholderLayer.contents = nil;
13381338
}
13391339

1340-
- (void)recursivelyClearRendering
1340+
- (void)recursivelyClearContents
13411341
{
13421342
for (ASDisplayNode *subnode in self.subnodes) {
1343-
[subnode recursivelyClearRendering];
1343+
[subnode recursivelyClearContents];
13441344
}
1345-
[self clearRendering];
1345+
[self clearContents];
13461346
}
13471347

1348-
- (void)fetchRemoteData
1348+
- (void)fetchData
13491349
{
13501350
// subclass override
13511351
}
13521352

1353-
- (void)recursivelyFetchRemoteData
1353+
- (void)recursivelyFetchData
13541354
{
13551355
for (ASDisplayNode *subnode in self.subnodes) {
1356-
[subnode recursivelyFetchRemoteData];
1356+
[subnode recursivelyFetchData];
13571357
}
1358-
[self fetchRemoteData];
1358+
[self fetchData];
13591359
}
13601360

1361-
- (void)clearRemoteData
1361+
- (void)clearFetchedData
13621362
{
13631363
// subclass override
13641364
}
13651365

1366-
- (void)recursivelyClearRemoteData
1366+
- (void)recursivelyClearFetchedData
13671367
{
13681368
for (ASDisplayNode *subnode in self.subnodes) {
1369-
[subnode recursivelyClearRemoteData];
1369+
[subnode recursivelyClearFetchedData];
13701370
}
1371-
[self clearRemoteData];
1371+
[self clearFetchedData];
13721372
}
13731373

13741374
- (void)layout
@@ -1822,12 +1822,12 @@ - (BOOL)placeholderFadesOut
18221822

18231823
- (void)reclaimMemory
18241824
{
1825-
[self clearRendering];
1825+
[self clearContents];
18261826
}
18271827

18281828
- (void)recursivelyReclaimMemory
18291829
{
1830-
[self recursivelyClearRendering];
1830+
[self recursivelyClearContents];
18311831
}
18321832

18331833
@end

AsyncDisplayKit/ASMultiplexImageNode.mm

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,9 @@ - (instancetype)init
162162
}
163163

164164
#pragma mark - ASDisplayNode Overrides
165-
- (void)clearRendering
165+
- (void)clearContents
166166
{
167-
[super clearRendering]; // This actually clears the contents, so we need to do this first for our displayedImageIdentifier to be meaningful.
167+
[super clearContents]; // This actually clears the contents, so we need to do this first for our displayedImageIdentifier to be meaningful.
168168
[self _setDisplayedImageIdentifier:nil withImage:nil];
169169

170170
if (_downloadIdentifier) {
@@ -177,12 +177,12 @@ - (void)displayWillStart
177177
{
178178
[super displayWillStart];
179179

180-
[self fetchRemoteData];
180+
[self fetchData];
181181
}
182182

183-
- (void)fetchRemoteData
183+
- (void)fetchData
184184
{
185-
[super fetchRemoteData];
185+
[super fetchData];
186186

187187
[self _loadImageIdentifiers];
188188
}

AsyncDisplayKit/ASNetworkImageNode.mm

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -127,12 +127,12 @@ - (void)displayWillStart
127127
{
128128
[super displayWillStart];
129129

130-
[self fetchRemoteData];
130+
[self fetchData];
131131
}
132132

133-
- (void)clearRemoteData
133+
- (void)clearFetchedData
134134
{
135-
[super clearRemoteData];
135+
[super clearFetchedData];
136136

137137
{
138138
ASDN::MutexLocker l(_lock);
@@ -143,9 +143,9 @@ - (void)clearRemoteData
143143
}
144144
}
145145

146-
- (void)fetchRemoteData
146+
- (void)fetchData
147147
{
148-
[super fetchRemoteData];
148+
[super fetchData];
149149

150150
{
151151
ASDN::MutexLocker l(_lock);

AsyncDisplayKit/ASTextNode.mm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,12 +226,12 @@ - (void)displayDidFinish
226226
[self _invalidateRenderer];
227227
}
228228

229-
- (void)clearRendering
229+
- (void)clearContents
230230
{
231231
// We discard the backing store and renderer to prevent the very large
232232
// memory overhead of maintaining these for all text nodes. They can be
233233
// regenerated when layout is necessary.
234-
[super clearRendering]; // ASDisplayNode will set layer.contents = nil
234+
[super clearContents]; // ASDisplayNode will set layer.contents = nil
235235
[self _invalidateRenderer];
236236
}
237237

AsyncDisplayKit/Details/ASRangeHandlerPreload.mm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ @implementation ASRangeHandlerPreload
1616
- (void)node:(ASDisplayNode *)node enteredRangeOfType:(ASLayoutRangeType)rangeType
1717
{
1818
ASDisplayNodeAssert(rangeType == ASLayoutRangeTypePreload, @"Preload delegate should not handle other ranges");
19-
[node recursivelyFetchRemoteData];
19+
[node recursivelyFetchData];
2020
}
2121

2222
- (void)node:(ASDisplayNode *)node exitedRangeOfType:(ASLayoutRangeType)rangeType
2323
{
2424
ASDisplayNodeAssert(rangeType == ASLayoutRangeTypePreload, @"Preload delegate should not handle other ranges");
25-
[node recursivelyClearRemoteData];
25+
[node recursivelyClearFetchedData];
2626
}
2727

2828
@end

AsyncDisplayKit/Details/ASRangeHandlerRender.mm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ - (void)node:(ASDisplayNode *)node exitedRangeOfType:(ASLayoutRangeType)rangeTyp
5050
[node recursivelySetDisplaySuspended:YES];
5151
[node.view removeFromSuperview];
5252

53-
[node recursivelyClearRendering];
53+
[node recursivelyClearContents];
5454
}
5555

5656
@end

AsyncDisplayKitTests/ASBasicImageDownloaderContextTests.m

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ - (void)testContextInvalidation
4242
XCTAssert([context isCancelled], @"Context should be cancelled");
4343
}
4444

45+
/* This test is currently unreliable. See https://github.com/facebook/AsyncDisplayKit/issues/459
4546
- (void)testAsyncContextInvalidation
4647
{
4748
NSURL *url = [self randomURL];
@@ -56,6 +57,7 @@ - (void)testAsyncContextInvalidation
5657
[context cancel];
5758
[self waitForExpectationsWithTimeout:30.0 handler:nil];
5859
}
60+
*/
5961

6062
- (void)testContextSessionCanceled
6163
{

Podfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ SPEC CHECKSUMS:
1010
FBSnapshotTestCase: 3dc3899168747a0319c5278f5b3445c13a6532dd
1111
OCMock: a6a7dc0e3997fb9f35d99f72528698ebf60d64f2
1212

13-
COCOAPODS: 0.36.3
13+
COCOAPODS: 0.37.1

0 commit comments

Comments
 (0)