データソースのURLをチェックして、そのURLのオブジェクトを配列に取り込むコードを書くことを試みています。実際にはうまくいきますが、Web接続やアドレスに問題がある場合は、バンドルされたファイルからデータを配列に取り込みたいと思います。私が抱えている問題は、connection didFailWithError
メソッドが呼び出されないということです。私は単純な文字列を渡そうとしましたが、呼び出しません。 ipod touchを使用している人や飛行機モードにいる人のためにアプリを機能させたい。NSURLConnectionがdidFailWithErrorを呼び出していません。
connection didReceiveResponse
問題なく動作しています。
これは私が作業しているものです。
- (void)loadListData{
NSLog(@"Loading data from sources");
NSURLRequest *listURLRequest = [NSURLRequest requestWithURL:integerPhoneListURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:1.0];
[[NSURLConnection alloc] initWithRequest:listURLRequest delegate:self];
if (!listConnectFail){
phoneListJSON =[NSData dataWithContentsOfURL:integerPhoneListURL];
[self performSelectorOnMainThread:@selector(fetchedData:) withObject:phoneListJSON waitUntilDone:YES];
} else {
//This will tell us if there is an error loading the file
NSLog(@"File not found on web init from file");
phoneListJSON =[NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"contactlist" ofType:@"json"]];
[self performSelectorOnMainThread:@selector(fetchedData:) withObject:phoneListJSON waitUntilDone:YES];
}
//Initialize the filtered list with array of customer objects. Based on original data
filteredList = [[NSMutableArray alloc] init];
for (NSDictionary *dict in phoneListOriginal) {
contact *single = [[contact alloc] init];
single.fName = [dict objectForKey:@"fName"];
single.lName = [dict objectForKey:@"lName"];
single.extension = [dict objectForKey:@"extension"];
single.title = [dict objectForKey:@"title"];
single.department = [dict objectForKey:@"department"];
single.cellNumber = [dict objectForKey:@"cellNumber"];
//NSLog(@"%@", single.lName);
[filteredList addObject:single];
}
NSLog(@"Array filteredLIst contains %d records",[filteredList count]); }
- (ボイド)接続:(NSURLConnection *)接続didFailWithError:(NSError *)エラー{
listConnectFail = YES;
NSLog(@"Connection Failed, pulling from file"); }
- (ボイド)接続:(NSURLConnection *)接続didReceiveResponse:(NSURLResponse *)レスポンス{ listConnectFail = NO; NSLog(@ "接続は成功し、APIから入力しました"); }
は、私はそれはおそらく私が見ていないですという愚かなものだけど、私は私が事前に
感謝しないものを見るためにヘルプを使用することができます!
ログは私に多くの情報を与えません。私が間違ったURLを与えた場合、最終的に 'SIGABRT'を破棄して戻すまで、何秒間もメッセージなしで待っています。 – Tenthrow