0

を使用して画像をダウンロードしASIHTTPRequestます。私はこのコードを書きました:

+(void)GetImagesURL
{
    NSLog(@"%i",[TripsArray count]);
    for (int i=0;i< [TripsArray count]; i++) 
    {

        NSURL *DetailTripURL = [NSURL URLWithString:[[TripsArray objectAtIndex:i] TripURL]];
        __block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:DetailTripURL];
        [request setCompletionBlock:^{
            NSData *TripHTMLData = [request responseData];
            NSLog(@"url :  %@",DetailTripURL);
            [[TripsArray objectAtIndex:i] setTripData:TripHTMLData];
            //NSLog(@"%@",DetailTripHTMLData);
            // 2
            TFHpple *DetailTripParser = [TFHpple hppleWithHTMLData:TripHTMLData];

            // Get Image
            NSString *ImageTripXpathQueryString = @"//div[@class='image_container']/img";
            NSArray *ImageTripNodes = [DetailTripParser searchWithXPathQuery:ImageTripXpathQueryString];
            NSLog(@"%i",[ImageTripNodes count]);
            for (int j=0 ;j<[ImageTripNodes count]; j++)
            {
                [[TripsArray objectAtIndex:i] setImageUrl:[[ImageTripNodes objectAtIndex:j] objectForKey:@"src"]];
                NSLog(@"%@",[[ImageTripNodes objectAtIndex:j] objectForKey:@"src"]);
            }


        }];
        [request setFailedBlock:^{
            NSError *error = [request error];
            NSLog(@"Get Image URL Failed %@", error.localizedDescription);
        }];

        [request startAsynchronous];        
    }
        [[NSNotificationCenter defaultCenter] postNotificationName:@"Get Images URL Success" object:self];
}

私はpostNotificationName別の関数を呼び出したい。

問題はNSNotificationCenterではなくpostNotificationNameです。助けてください?

4

1 に答える 1

0

まず、オブザーバーを追加する必要がありますGet_Images_URL_Success

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(gotMessages:) name:Get_Images_URL_Success object:nil];

あなたpostNotificationName+GetImagesURLメソッドにいるとき、これは呼び出されます

- (void)gotMessages:(id)sender {
    NSLog(@"This will be called after the postNotificationName");
}

不要な場合に推奨されますremoveObserver(たとえば、dealloc)

[[NSNotificationCenter defaultCenter] removeObserver:self name:Get_Images_URL_Success object:nil];

postNotificationNameこれが気に入ったら、gotMessagesメソッドを呼び出す必要があります

[[NSNotificationCenter defaultCenter] postNotificationName:Get_Images_URL_Success object:self];

【超簡単ですよね?】

于 2012-11-13T19:33:52.577 に答える