Значение параметра теряется при прохождении - PullRequest
1 голос
/ 21 августа 2009

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

Я передаю переменную типа float из класса (UIView) в другой класс (UIViewController) непосредственно перед передачей переменной, ее значение является правильным, но когда оно достигает функции, оно теряет свое значение, оно отображается равным 0 или -2 и я не уверен почему. Как я уже сказал, я уверен, что это что-то простое, но мне просто нужна свежая пара глаз, чтобы посмотреть на это

Код ниже

  //inside UIView
-(void)UpdateFloat
{
myFloat = myFloat + 0.01;
}



    -(void)RemoveView
{
//Function Call
[viewController myFunction:myFloat];
}

//Function
-(void)myFunction:(float)myFloat
{
[myView removeFromSuperview];
[self.view addSubview:myOtherView];
[myOtherView anotherFunction:myFloat];

}

Число с плавающей точкой обновляется таймером, и когда UIView вызывает функцию, значение с плавающей точкой является правильным (обычно около 15.67)

любая помощь будет оценена

Заранее спасибо, BWC

Ответы [ 3 ]

1 голос
/ 21 августа 2009

Если ваш float действительно является float, держу пари, что где-то еще происходит что-то еще, что манипулирует этим значением, это не сообщение отправлено. Поиск каждого вхождения этого имени переменной.

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

Также возможно, что это предмет, связанный с областью видимости, и вместо этого вы получаете myFloat, трудно сказать, не имея доступного источника.

0 голосов
/ 21 августа 2009

Хорошо, ребята,

Думаю, я понял, почему поплавок не сохраняет свою ценность, но причина также сбивает меня с толку.

когда я вызываю функцию ViewControllers в коде UIView, Xcode показывает предупреждение о том, что метода нет, и что методы без соответствующей подписи будут предполагать, что будут возвращать (id) и передавать в качестве аргументов '...'

Я понимаю, что означает это предупреждение, но я не понимаю, что у меня есть метод, объявленный в заголовке моего viewController

-(void)myFunction:(float)myFloat;

У меня также есть другое представление, которое вызывает функции для контроллера представления, и оно не отображает это предупреждение ... Я почти уверен, что это причина того, что float не сохраняет свое значение, но я не знаю, почему это может не вижу подписи метода

0 голосов
/ 21 августа 2009

Ну, я вас не понимаю, потому что вы говорите, что переходите из UIView в UIViewController. Но в своем коде вы сначала вызываете функцию в UIViewController, которая, кстати, должна быть [self myFunction: myFloat], и в этой функции вы вызываете свой UIView.

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