Двойник, созданный в Swift
let d: Double = 1.0
при передаче в Objective C не сохраняет .0. Он заканчивается как 1.
Есть ли способ сохранить .0 для целых двойников в Objective 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
}
}
Вам все еще не хватает того, как вы обрабатываете данные в методе log в Obj-C.





Судя по формулировке вашего вопроса, вам может потребоваться изучить разницу между двойное значение (одинаковым на обоих языках) и текстовое представление двойного значения (который, как показывает ваш вопрос, может не совпадать по умолчанию на обоих языках).
Как только вы это поймете, найдите метод NSStringstringWithFormat и посмотрите, сможете ли вы создать требуемый формат, используя его. (NSLog() поддерживает такое же форматирование.)
Если вышеперечисленное не соответствует вашим требованиям, найдите NSNumberFormatter.
HTH
Это зависит от того, как вы справляетесь с этим в Objective-C. Покажите свой код Obj-C для лучшей помощи.