2014-10-10 2 views
2

У меня есть объект «pickerView» в быстром проекте. Я понимаю код в Objective-c, но я не уверен, как его реализовать в Swift.StringWithFormat «% .2ld» objc to swift

Метод ObjC

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
    switch (component) 
    { 
     case 0://Week 
      return 7; 
     case 1://Hour 
      return 24; 
     default://Minutes 
      return 60;//or 7;(10 by 10) //or 13;(5 by 5) 
    } 
} 

Я только не знаю, как реализовать оператор переключения для функции titleForRow. Это проблема stringWithFormat:@"%.2ld",(long)row.

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    switch (component) 
    { 
     case 0://Week 
      return _dayOfWeek[row]; 
     case 1://Hour 
      return [NSString stringWithFormat:@"%.2ld",(long)row]; 
     default://Minutes 
      return [NSString stringWithFormat:@"%.2ld",(long)row];//or ,row*10] //or ,row*5] 
    } 
} 

Может ли кто-нибудь мне помочь.

Привет, Dax

ответ

15

Вы можете продолжать использовать stringWithFormat, но имена инициализатора получить искаженное немного:

return NSString(format: "%.2ld", row) 

В принципе любой метод класса, который по имени [{{class}} {{class}}WithXXXX:...] будет переименовываться в инициализатор как {{Class}}(XXXX:...)

+2

Вы также можете использовать String (формат: «% @», a, b) –

0

вы можете использовать var str = NSString(format: "Hello, world %.2ld", 42.12312312313)

+0

Обратите внимание, что ОП задает значение как тип '(long)' а не число с плавающей запятой. Код ответа создает: «Привет, мир 00», который, вероятно, не тот, что хочет OP. – zaph

+0

Спасибо за ответы. Нет, мне просто нужен вывод, который является типом возвращаемого типа в 'numberOfRowsInComponent'. – SwingerDinger

Смежные вопросы