2012-04-08 69 views
0

我在设备上面临这个问题,即分配选取器的选定行值需要太多时间才能在模拟器上正常工作时在标签上显示。在设备上分配UIPickerView值问题

下面是代码:

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row 
     inComponent:(NSInteger)component 
{ 
    if (pickerView == rewardsName) { 

    NSString *selectedReward = [self.rewards objectAtIndex:row]; 

    if ([reward1.text length]==0){ 
     //set label 1 

     reward1.text = selectedReward; 
    } 
    if ([reward2.text length]==0){ 
     //set label 2 

     reward2.text = selectedReward; 
    } 
    if([reward3.text length]==0){ 
     //set label 3. 

     reward3.text = selectedReward; 
    } 
    } 

    else if(pickerView == selectNamazPicker){ 

     aNumberString = [self.namazArray objectAtIndex:row]; 

     NSLog(@"aNumberString:: %@", aNumberString); 
    } 
} 

谁能告诉我什么可以是问题......我无法找到一个...

**

EDITED: 
ISSUE RESOLVED: 

**

For others who would face this issue. 

I don't know whether it was creating the problem or not. But I did make these changes to my code. 

In my .h file, previously I was just defining properties of UILabels (reward1, reward2 etc) with IBOutlet and not ivars. But then I defined ivars as IBOutlet UILabel reward1; etc and eliminated IBOutlet from properties then it started working fine. 

Now the problem has resolved. 
+0

什么是'rewardsName'?请注意,您正在比较两个对象的地址:'if(pickerView == rewardsName)'... – giorashc 2012-04-08 14:48:15

+0

实际上,我在单个视图上使用了两个pickerview。 rewardsName是UIPickerview – 2012-04-08 15:15:23

+0

如果'reward1','reward2'和'reward3'属于'UILabel'类,那么读取和改变它们的文本应该没什么效果。您可以尝试:(1)注释掉整个块以确认问题消失;(2)在代码中的其他位置更改UILabel文本以确认问题出现在那里? – Dondragmer 2012-04-10 11:15:43

回答

0

对于其他人会面临这个问题。

我不知道它是否造成问题。但我确实对我的代码进行了这些更改。

在我的.h文件中,以前我只是用IBOutlet而不是ivars定义UILabels(reward1,reward2等)的属性。但后来我将ivars定义为IBOutlet UILabel reward1;等等,并从属性中消除了IBOutlet,然后它开始正常工作。

现在问题已经解决。