次の機能。「ProcessArrayForscrollView」は、url を送信して受信した JSON データを読み取ります。"urlProcess" を呼び出し、フェッチしたデータ値を NSString 形式で NSMutableArrays に格納します。
#import "SBJson.h"
#import "SBJsonStreamParser.h"
@implementation AllShowsViewController
NSURL *url = nil;
NSString * arrayDataString;
NSData *dataAllShowsView;
NSError *errorAllShowsView;
NSString *data_stringAllShowsView;
SBJsonParser *parserAllShowsView;
NSArray *data_arrayAllShowsView;
NSDictionary *itemNSDictAllShowsView;
NSMutableArray *thumbnailImageURLAllShows;
NSMutableArray *thumbnailShowCountAllShows;
-(void)ProcessArrayForscrollView{
thumbnailImageURLAllShows = [[NSMutableArray alloc] init];
thumbnailShowCountAllShows = [[NSMutableArray alloc] init];
dataAllShowsView = [[[NSData alloc] initWithContentsOfURL:urlProcess] autorelease];
errorAllShowsView = nil;
data_stringAllShowsView = [[[NSString alloc] initWithData:dataAllShowsView encoding:NSUTF8StringEncoding]autorelease];
parserAllShowsView = [[[SBJsonParser alloc] init] autorelease];
data_arrayAllShowsView = [[[NSArray alloc] initWithArray:[parserAllShowsView objectWithString:data_stringAllShowsView error:&errorAllShowsView]] autorelease];
for(itemNSDictAllShowsView in data_arrayAllShowsView){
arrayDataString = [NSString stringWithFormat:@"%@",[itemNSDictAllShowsView objectForKey:@"thumbnail_small"]]; //memory leak notification here
[thumbnailImageURLAllShows addObject: arrayDataString];
arrayDataString = nil;
arrayDataString = [NSString stringWithFormat:@"%@",[itemNSDictAllShowsView objectForKey:@"showcount"]]; //memory leak notification here
[thumbnailShowCountAllShows addObject: arrayDataString];
arrayDataString = nil;
}
}
-(void)dealloc{
[super dealloc];
}
- (void)viewDidUnload{
if(thumbnailImageURLAllShows != nil){
[thumbnailImageURLAllShows release];
thumbnailImageURLAllShows = nil;
}
if(thumbnailShowCountAllShows != nil){
[thumbnailShowCountAllShows release];
thumbnailShowCountAllShows = nil;
}
[super viewDidUnload];
}
@end
Xcode インストゥルメントを使用してメモリ リークをチェックするコードを実行したところ、2 行でリークが発生しました。このリークは、上記のviewControllerから切り替えた後に通知されます。「AllShowsViewController」を他のviewController(nibファイルを持つ)に。リークを削除する方法に関するアドバイスは本当に役に立ちます。