Сохранение быстрой точности в Objective C - PullRequest
0 голосов
/ 21 мая 2018

Двойник, созданный в Swift

let d: Double = 1.0

при передаче в цель C, не сохранит .0.Это заканчивается как 1.

Есть ли способ сохранить .0 для целых двойных чисел в Цели C:

Редактировать:

Вот что я делаю:

Parent.m

 @implementation Parent

-(void)log:(NSDictionary*)data {
}

 @end

Parent.h

@interface Parent : NSObject

-(void)log:(NSDictionary*)data;

@end

Child.swift

class Child: Parent {

    func log() {
      let measure = Double(1)
      let isLoggedIn = false
      let data: [String: Any] = ["is_logged_in": isLoggedIn, "measure": measure]
      log(data) // calling parent method, measure ends up as 1
    }

}

1 Ответ

0 голосов
/ 21 мая 2018

Из формулировки вашего вопроса вам может потребоваться изучить разницу между двойным значением (одинаковым на обоих языках) и текстовым представлением двойного значения (котороевопрос подсказки может не совпадать по умолчанию на обоих языках).

Как только вы это поймете, найдите метод NSString stringWithFormat и посмотрите, можете ли вы создать требуемый формат, используя его.(NSLog() поддерживает одинаковое форматирование.)

Если вышеуказанное не соответствует вашим требованиям, посмотрите NSNumberFormatter.

HTH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...