以下のプログラムをインスツルメントのリークで実行するとおかしくなります。
詳しくは下の方に書きます。
Xcode4.02を使用してiOS4.3の環境です。
ソースファイルを添付しました。
@interface Test_HTTP00 : NSObject {
}
-(id)init;
-(void)dealloc;
-(NSData*)httpGet:(NSString*)url;
-(void)testFunc2;
@end
@implementation Test_HTTP00
-(id)init {
[super init];
return self;
}
- (void)dealloc {
[super dealloc];
}
-(NSData*)httpGet:(NSString*)url {
NSData* tDat = Nil;
NSError* Error = Nil;
NSURLRequest* request = Nil;
NSHTTPURLResponse* Response = Nil;
request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
tDat = [NSURLConnection sendSynchronousRequest:request
returningResponse:&Response
error:&Error];
return tDat;
}
-(void)testFunc2 {
int i;
for ( i = 0; i < 100; ++i ) {
NSAutoreleasePool* LoopPl = [[NSAutoreleasePool alloc] init];
[self httpGet:@"http://www.google.co.jp/"];
NSLog(@"%d", i );
[LoopPl release];
}
NSLog(@"End");
}
@end
アプリケーションデリゲートのdidFinishLaunchingWithOptionsの中で の様にコールしています
上記プログラムをiPhoneシミュレータでのインスツルメントのリークで実行すると強制終了してしまいます。
ループ回数を10とかにすると正常動作する様です。
同様にiPad実機でのインスツルメントのリークで実行すると速度は遅いもののなんとか動作する様です。
iPad実機でのデバッグで実行すると速度は通常の速度です。
皆さんの環境では同様のことは起きませんか?
また、これはプログラム的に問題無いと判断しても良い物でしょうか?
ご存知の方よろしくお願いします。