Я обнаружил, что некоторое решение не работает для меня в Simulator в Xcode. Вместо этого это работает:
NSString *deviceModel = (NSString*)[UIDevice currentDevice].model;
if ([[deviceModel substringWithRange:NSMakeRange(0, 4)] isEqualToString:@"iPad"]) {
DebugLog(@"iPad");
} else {
DebugLog(@"iPhone or iPod Touch");
}
if UIDevice.current.model.hasPrefix("iPad") {
print("iPad")
} else {
print("iPhone or iPod Touch")
}
Также в «других примерах» в Xcode модель устройства возвращается как « iPad Simulator ', поэтому вышеупомянутая настройка должна разобраться в этом.
Вы можете использовать переменную для индексов, но вы не можете построить строку так, как вы пытались. Попробуйте создать пользовательскую переменную до:
{$myIndex = "param_{$k.id}_{$p.num}"}
{if $smarty.get.$myIndex eq $key}
...
Это должно работать.
В моем случае я использовал решение UnLoCo и попытался напрямую получить доступ к содержимому массива (без оператора if) с помощью динамического ключа, и он отлично работает:
{$arr1["column_{$arr2.month}_price"]}
Это будет работать и
{if $smarty.get["param_{$k.id}_{$p.num}"] eq $key}
...