1

拡張するView Controllerを使用するアプリケーションがNetworkPhotoAlbumViewControllerあり、次に拡張しますNIToolbarPhotoViewController

NIPhotoAlbumScrollViewDataSource基本的に、 NIPhotoScrubberViewDataSourceNIOperationDelegate、などのすべての NI プロトコルを実装し NIPhotoAlbumScrollViewDelegate、唯一のカスタマイズはdidReceiveMemoryWarning:

- (void) didReceiveMemoryWarning {
    NSLog(@"Nimbus Photo Album memory warning");
    [self.highQualityImageCache reduceMemoryUsage];
    [self.thumbnailImageCache reduceMemoryUsage];
    NSLog(@"Nimbus Photo Album end 0memory warning");
}

同時ダウンロード数をaddOperation減らすには:

-(void) addOperation: (AFImageRequestOperation *) operation {
    NSLog(@"operation queue size is %d", _queue.operationCount);

    BOOL found = NO;
    for (AFImageRequestOperation *op in _queue.operations) {
        if(!operation.isCancelled && [[operation.request.URL absoluteString] compare:[op.request.URL absoluteString]] == NSOrderedSame) {
            NSLog(@"found the same operation");
            found = YES;
            break;
        }
    }

    if(found) return;

    NSInteger cancelledCount = 0;
    if (_queue.operationCount > 5) {
        for (NSOperation *operation in _queue.operations) {
            if (operation.isCancelled) {
                cancelledCount ++;
            }
        }
    }

    NSLog(@"cancelled operation count is %d", cancelledCount);
    NSInteger count = _queue.operationCount;
    if(count - cancelledCount > 5) {
        for (NSOperation *operation in _queue.operations) {
            if(!operation.isCancelled) {
                NSLog(@"cancel operation");
                [operation cancel];
                break;
            }
        }
    }

    NSLog(@"operation is added into queue");
    [_queue addOperation:operation];
}

このアプリケーションはまた、AVFoundation を使用して写真をキャプチャし、フル解像度でサーバーに送信します (後でネットワーク アルバムにロードします)。

問題は、使用してから写真キャプチャに切り替えると、とが呼び出されたNetworkPhotoAlbumViewControllerとしても、メモリ不足 (アプリのメモリが 20 ~ 30 MB に達する可能性がある) が原因でアプリケーションがクラッシュすることが非常に多いことです。didReceiveMemoryWarningreduceMemoryUsage

何か間違ったことをしていて、メモリが正しくクリアされていない可能性はありますか? 問題の原因はAFNetworking? Web からいくつかの画像をダウンロードし、サムネイルの読み込みとパンとズームを使用してフォト アルバムに表示する代わりに、どのような方法がありますか?

4

0 に答える 0