0

NSStringとして距離を返すプロジェクトがあります。その距離をチェックして、10,000フィート以下かそれ以上かどうかを確認したいと思います。「ARCでは「int」から「NSString*」への暗黙の変換は許可されていません」というエラーが発生します。NSStringを整数に変換する方法を知っている人はいますか?またはコードを構築する方法は?ありがとうございました!

- (IBAction)btnPress:(id)sender {

NSString *distanceInFeet = [[NSUserDefaults standardUserDefaults]
                           stringForKey:@"distanceInFeet"];

if ([distanceInFeet intValue] <= 10000)
{

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Close" message:@"Distance is close" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil, nil];
    [alert show];
    return;

else
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Far" message:@"Distance is far" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil, nil];
    [alert show];
    return;
}

} 
4

2 に答える 2

1

これを試してみませんか?

 

if ([distanceInFeet intValue]<=10000)
{

また

if ([distanceInFeet integerValue]<=10000)
{

編集:

コードの編集に従って、表示されたエラーを修正します...

NSString *distanceInFeet = [NSString alloc] initWithFormat:@"%ld", [[NSUserDefaults standardUserDefaults]
                           stringForKey:@"distanceInFeet"]];
于 2012-12-16T11:38:26.797 に答える
1

を使用するNSNumberFormatterと、文字列が有効な数値でない場合は nil が返されます。

NSString *distanceInFeet ...
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *distanceInFeetNumber = [numberFormatter numberFromString:ditanceInFeet];

if ([distanceInFeetNumber intValue] <= 10000) {
    //do stuff in here
}
于 2012-12-16T11:40:58.203 に答える