Как я мог передать число с плавающей точкой по значению в Objective-C? - PullRequest
0 голосов
/ 22 апреля 2010

В следующем коде я передал «1.3f» в printFloat, но это было неправильное значение (в данном случае -2.000000) после получения «f». И есть предупреждение, что «AppDelegate может не отвечать на -printFloat:»

Где я ошибся?

- (void)applicationDidFinishLaunching:(UIApplication *)application{
    // Override point for customization after application launch
    [window makeKeyAndVisible];
    [self printFloat:1.3f];
}

- (void)printFloat:(float)f {
    NSLog(@"%f",f);
}

Ответы [ 2 ]

2 голосов
/ 22 апреля 2010

Вы можете легко решить обе ваши проблемы, добавив прототип метода в файл заголовка (<sameName>.h):

- (void)printFloat:(float)f;
0 голосов
/ 06 сентября 2011

Если вы включили правильное определение в заголовочный файл класса и по-прежнему не можете передавать операции с плавающей точкой по ссылке, убедитесь, что вы не переопределяете существующий метод родительского класса ...

Например, у меня была эта проблема, потому что мой класс был получен из NSMutableData (который я тогда не знал), и я добавил метод

 - (void) initWithLength:(float)length;

в мой класс. NSMutableData уже определяет этот метод и использует целое число.

Мой метод тогда произвел мусор: значение с плавающей точкой было передано как 0x0 независимо от того, что я послал это ...

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