1

mapview をオーバーレイし、RegexKitLite を使用しています。私はそれを機能させることができませんでした。.m および .h ファイルをダウンロードし、プロジェクトに追加しました。また、 libicucore.dylib または libicucore.A.dlib を追加するか、 -licucore を他のコンパイラフラグフィールドに追加してみました。それでもエラーが発生します:

2012-04-01 19:38:04.633 sennerdeysen[907:15803] -[__NSCFString stringByMatching:capture:]: 認識されないセレクターがインスタンス 0x88b6a00 に送信されました 2012-04-01 19:38:04.634 sennerdeysen[907:15803] *アプリの終了キャッチされない例外 'NSInvalidArgumentException' のため、理由: '-[__NSCFString stringByMatching:capture:]: 認識されないセレクターがインスタンス 0x88b6a00 に送信されました'

何か案が?

最新の Xcode ですが、SDK は 4.3 です

iOS 5.0 SDK が提供する ARC やその他のものはありません。

stringbymatching メソッドを呼び出す関数は次のとおりです。

-(NSArray*) calculateRoutesFrom:(CLLocationCoordinate2D) f to: (CLLocationCoordinate2D) t {
NSString* saddr = [NSString stringWithFormat:@"%f,%f", f.latitude, f.longitude];
NSString* daddr = [NSString stringWithFormat:@"%f,%f", t.latitude, t.longitude];

NSString* apiUrlStr = [NSString stringWithFormat:@"http://maps.google.com/maps?output=dragdir&saddr=%@&daddr=%@", saddr, daddr];

NSURL* apiUrl = [NSURL URLWithString:apiUrlStr];

NSError *error;    
NSString *apiResponse=[NSString stringWithContentsOfURL:apiUrl encoding:NSASCIIStringEncoding error:&error];

if(apiResponse)
{
    NSString* encodedPoints = [apiResponse stringByMatching:@"points:\\\"([^\\\"]*)\\\"" capture:1L];
    NSLog(@"%@",encodedPoints);
    return [self decodePolyLine:[encodedPoints mutableCopy]];
}
else 
{

    UIAlertView *alertView=[[[UIAlertView alloc]initWithTitle:@"Hata" 
                                                      message:@"Rota çizilemedi. Lütfen daha sonra tekrar deneyiniz." 
                                                     delegate:nil 
                                            cancelButtonTitle:@"Tamam" 
                                            otherButtonTitles:nil] autorelease];
    [alertView show];
    return nil;
}    

}

4

0 に答える 0