0
NSString *Address = [placemark.addressDictionary objectForKey:@"FormattedAddressLines"];
NSLog(@"Address:%@", Address);
Address: ("Hooker Alley","San Francisco, CA 94108",USA)

Hooker Alley、San Francisco、CA 94108、USAなどの住所文字列から一部の文字を削除したい。このように削除する方法は?私を助けてください

前もって感謝します

私はこれを試しました:

NSString *removeCharacter = [Address stringByReplacingOccurrencesOfString:@"(" withString:@""];

ただし、エラーは最初のスロー呼び出しスタックで発生します。

エラーメッセージは、

-[__NSArrayM stringByReplacingOccurrencesOfString:withString:]: unrecognized selector sent to instance 0x81afd00 
4

5 に答える 5

3

これを試して、

NSArray *addressArray = [placemark.addressDictionary objectForKey:@"FormattedAddressLines"];
NSString *address = [addressArray componentsJoinedByString:@", "];
NSLog(@"Address:%@", address);

あなたの場合、[placemark.addressDictionary objectForKey:@"FormattedAddressLines"]は単一の文字列ではなく配列を返しています。上記のように、これらの配列コンポーネントを単一の文字列として結合することができます。または、確認することもできます

id object = [placemark.addressDictionary objectForKey:@"FormattedAddressLines"];
if([object isKindOfClass[NSArray class]]) {
  //handle as above
} else if([object isKindOfClass[NSString class]]) {
  //use your code
}
于 2012-11-21T08:56:09.680 に答える
1

次のように削除できます:-

 NSString *s = @"$$$hgh$g%k&fg$$tw/-tg";
    NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"-/:;()$&@\".,?!\'[]{}#%^*+=_|~<>€£¥•."];
    s = [[s componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];

    NSLog(@"String is: %@", s);
于 2012-11-21T08:53:23.057 に答える
0

次のように使用して、出力がaddressDictionary objectForKey提供するものを確認します。isKindOfClass

if([[placemark.addressDictionary objectForKey:@"FormattedAddressLines"] isKindOfClass[NSArray class]])
{

  NSArray *address=[placemark.addressDictionary objectForKey:@"FormattedAddressLines"];
  NSLog(@"Address:%@",Address);
  NSString *str = [address componentsJoinedByString: @","]
  NSLog(@"str:%@",str);
}
于 2012-11-21T08:56:18.047 に答える
0

これを一度試してみてください....それはあなたを助けます

 NSString *unfilteredString = @"!@#$%^&*()_+|abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
NSCharacterSet *notAllowedChars = [NSCharacterSet characterSetWithCharactersInString:@"1234567890"];
NSString *resultString = [[unfilteredString componentsSeparatedByCharactersInSet:notAllowedChars] componentsJoinedByString:@""];
NSLog (@"Result: %@", resultString);
于 2012-11-21T08:56:33.507 に答える
0
    NSArray *Address=[placemark.addressDictionary objectForKey:@"FormattedAddressLines"];
     NSLog(@"Address:%@",Address);

     NSMutableString *myString = [[NSMutableString alloc]init];

    for(int i = 0 ; i < [Address count] ; i++){
    [myString appendString:[Address objectAtIndex:i]];


    if (i < [Address count]  ){
    [myString appendString:@","];
       }
 }

NSLog(@"%@",myString);
于 2012-11-21T09:00:52.597 に答える