Извлечение значений из выбора и преобразование в int - PullRequest
0 голосов
/ 01 марта 2012

Я пытаюсь создать приложение для расчета, которое состоит из 2-столбцов. В левой части окна выбора находятся значения данных, а значения данных извлекаются из списка с ценой каждого элемента. Другая сторона сборщика - строка, идущая от 1 до 64.

Я пытаюсь выяснить, как взять строковые значения обеих частей средства выбора и преобразовать их в целое число (чтобы их можно было умножить и распечатать)

Вот мой код (полностью) </p> <pre> #pragma mark - View lifecycle - (void)viewDidLoad { NSBundle *bundle = [NSBundle mainBundle]; NSString *plistPath =[bundle pathForResource:@"worthList" ofType:@"plist"]; NSDictionary *dictionary = [[NSDictionary alloc] initWithContentsOfFile:plistPath]; self.dataValues = dictionary; [dictionary release]; NSArray *components = [self.dataValues allKeys]; NSArray *sorted = [components sortedArrayUsingSelector:@selector(compare:)]; self.values = sorted; NSMutableArray *number =[[NSMutableArray alloc] init]; for(int x = 1; x < 65; x++) { NSString * numberString = [[NSString alloc] initWithFormat:@"%d",x]; [number addObject:numberString]; } self.quantity = number; [super viewDidLoad]; // Do any additional setup after loading the view from its nib. } - (void)viewDidUnload { self.doublePicker = nil; self.dataValues = nil; self.values = nil; self.quantity = nil; [self setDoublePicker:nil]; [super viewDidUnload]; // Release any retained subviews of the main view. // e.g. self.myOutlet = nil; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return (interfaceOrientation == UIInterfaceOrientationPortrait); } - (IBAction)calculateItem:(id)sender { NSString *message = [[NSString alloc] initWithFormat:@""]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Thank you" message:message delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles: nil]; [alert show]; [alert release]; [message release]; } #pragma mark - #pragma Picker data source methods -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { return 2; } -(NSInteger)pickerView:(UIPickerView *) pickerView numberOfRowsInComponent:(NSInteger)component { if (component == kValueComponent) { return [self.values count]; } return [self.quantity count]; } -(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent: (NSInteger)component { if (component == kValueComponent) { return [self.values objectAtIndex:row]; } return [self.quantity objectAtIndex:row]; } @end

Ответы [ 3 ]

1 голос
/ 01 марта 2012

Попробуйте преобразовать строку данных в int, а затем выполните вычисления:

int = [yourString intValue];
0 голосов
/ 01 марта 2012

ЗДЕСЬ МИНУТ И СЕКУНД ЯВЛЯЮТСЯ.

Метод делегирования выбора. Вы также можете использовать другие методы делегата.

Секунды и минуты - это массив, который загружает сборщик в вашем массиве использования, который передается plist.

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

    switch (component) {
        case 0:

               minuteTime =[minutes objectAtIndex:row] intValue]; 
            break;

        case 1:
            secondTime = [[seconds objectAtIndex:row] intValue];
            break;
    }
}

Вы также можете использовать этот метод для дальнейшего различения строк.

NSArray *greenTime = [yourstring componentsSeparatedByString:@":"];
        NSLog(@"Green Time : %@\nFirst : %@\nSecond : %@",greenTime,[greenTime objectAtIndex:0],[greenTime objectAtIndex:1]);
0 голосов
/ 01 марта 2012

Попробуйте это:

     NSString *str=[NSString stringWithFormat:@"%@",[pickerArr objectAtIndex:row]];
     int test=[str intValue];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...