我試圖獲得iOS編程的基礎知識。我有一個應用程序,當我點擊一個按鈕時顯示一個隨機數。至少,這就是我想要的。但是,它似乎並沒有解決問題。方法返回0而不是我分配給變量的編號
我有以下基本的方法,它應該將myLabel
的文本設置爲返回值generateRandomNumber
。然而,它總是返回0。我想我在這裏使用的語法是正確的,因爲它的工作原理的評論部分:
-(IBAction)myBtnPressed:(UIButton *)sender
{
//[myLabel setText:@"test"];
//[myLabel setText:[NSString stringWithFormat:@"%g/15", 3.14]];
[myLabel setText:[NSString stringWithFormat:@"%g/15", [myModel generateRandomNumber]]];
}
最後一行將標籤顯示0/15
。然而,在我的模型,我有以下代碼(「靜態」現在):
-(double)generateRandomNumber
{
randomNumber = 1.34;
return randomNumber;
}
不退還的1.34,我不明白爲什麼它沒有。有人可以清除它嗎?
更新 這是我的viewcontroller.m文件的代碼:
#import "myViewController.h"
@implementation myViewController
-(MyModel *)myModel
{
if (! myModel) {
myModel = [[MyModel alloc] init];
}
return myModel;
}
-(IBAction)myBtnPressed:(UIButton *)sender
{
[myLabel setText:[NSString stringWithFormat:@"%g/15", [myModel generateRandomNumber]]];
}
@end
而且,到最後,我想使generateRandomNumber
返回0和15.我會怎麼做之間的隨機數這個?請問一個簡單的一行:此
int x = arc4random() % 16;
工作?還是必須以某種方式對它進行種子處理,以便在運行應用程序時不總是返回相同的值?
在此先感謝。
您是否收到任何警告(特別是關於無法識別的選擇器的警告)? – 2011-06-20 11:51:19
完全沒有警告/問題:( – cabaret
JeremyP發現了這個錯誤,強烈建議你總是用下劃線開始你的實例變量,這樣可以避免這種錯誤,並且在訪問實例變量而不是屬性時可見。即使沒有錯誤,有人發現你的代碼訪問一個實例變量時,如果沒有下劃線,總是不確定這是你想做什麼,或者它是否是一個bug。 – gnasher729