UITableView
в рамках UIKit, вы не импортировали это. SO import UIKit.
В вашем viewDidLod
:
self.tableView.dataSource = self;
self.tableView.delegate = self;
В своем файле .h вы можете сделать:
@interface YourClassName : UIViewController
Если это пользовательский ввод, не используйте в нем строку eval, если у вас вообще есть какие-либо проблемы с безопасностью.
Попробуйте вместо этого использовать Number :: Range :
use Number::Range;
$str = "1..15,16" ;
@arr2 = Number::Range->new( $str )->range;
print for @arr2;
Чтобы избежать смерти в недопустимом диапазоне, выполните:
eval { @arr2 = Number::Range->new( $str )->range; 1 } or your_error_handling
Там также Set :: IntSpan , который использует - вместо ..:
use Set::IntSpan;
$str = "1-15,16";
@arr2 = Set::IntSpan->new( $str )->elements;
но для этого требуется, чтобы диапазоны были упорядочены и не перекрывались (он был написан для использования в файлах .newsrc, если кто-нибудь помнит, что это такое). Он также допускает бесконечные диапазоны (где строка начинается - число или заканчивается число -), по которым метод elements будет квакать.
Вы думаете о @ arr2 = eval ($ str);
Поскольку вы вносите вклад и оцениваете его, вам нужно быть осторожным.
Вам, вероятно, следует @ arr2 = eval ($ str) if ($ str = ~ m / ^ [0-9.,] + $ /)
PS Я не знал о пакете Number :: Range , но это круто . Число :: Диапазон ftw.
@arr2 = ( eval $str ) ;
Работает, хотя, конечно, вы должны быть очень осторожны с eval ().
Вы можете использовать eval:
$str = "1..15,16" ;
@arr2 = ( eval $str ) ;
@arr = ( 1..15,16 ) ;
print "@arr\n" ;
print "@arr2\n" ;
Хотя, если это пользовательский ввод, вы, вероятно, захотите сначала выполнить некоторую проверку входной строки, чтобы убедиться, что они не вводят ничего хитрого .
Использовать split:
@parts = split(/\,/, $fields);
print $parts[0];
1-6
print $parts[1];
8
Нельзя просто поместить строку, содержащую ',' в массив, и ожидать, что она превратится в элементы (кроме случаев, когда вы используете некую черную магию Perl, но мы не будем здесь вдаваться в подробности)
Но Regex и split - ваши друзья.