1

私のアプリケーションでは、ユーザーのロケールに基づいて電話番号をフォーマットしようとしています。私が直面している問題は次のとおりです。

Viewcontroller.m のコード:

   NSString *contact = [_phone convertContact:myNumber withLocale:typeN];
   NSLog(@"Phone number %@ and number = %@",contact,myNumber);

   //Console output 2012-07-23 15:40:16.994 InternProj[7585:f803] value of en and      23443235434

PhoneNumber.m のコード:

   - (NSString *) convertContact:(NSNumber *)aNumber withLocale:(NSString *)locale{

  NSString *localeString = locale ;
  NSLog(@"value of %@ and %@",localeString , aNumber);
  NSString *tempStr = [[NSString alloc] initWithString:@""];
  NSRange range;
  range.length = 3;
  range.location = 3;
   //Returns the phone number 2032225200 as 1(203)222-5200
  if([localeString compare:@"en"] == NSOrderedSame) {
    NSLog(@"Inside en");
    NSString *areaCode = [[aNumber stringValue] substringToIndex:3];
    NSString *phone1 = [[aNumber stringValue] substringWithRange:range];
    NSString *phone2 = [[aNumber stringValue] substringFromIndex:6];

    tempStr = [NSString stringWithFormat:@"1(%@)%@-%@", areaCode, phone1, phone2];
    NSLog(@"Value tempStr = %@",tempStr);
}
else {
    tempStr = [[aNumber stringValue] substringToIndex:3];
}


  return tempStr;
}

convertContact メソッドからの戻り値として null を取得しています。私はすべての順列を試しましたが、うまくいきません。また、誰かが Iphone ロケール ベースの電話番号のフォーマット情報を持っている場合は、共有してください。

4

1 に答える 1

1

まず第一に、iOS は電話番号のフォーマットをサポートしていません。開発者は独自のプラグインを作成する必要があります。また、メソッドで渡す typeN 変数についても言及してください。aNumber が null でないかどうかも確認します。メソッドで渡している数値が null の原因であると確信しています。

于 2012-10-22T20:22:30.963 に答える