Как условно включать в себя Апфинты, которые для iOS 17, поддерживая iOS 16IOS

Программируем под IOS
Ответить
Anonymous
 Как условно включать в себя Апфинты, которые для iOS 17, поддерживая iOS 16

Сообщение Anonymous »

Я пытался сделать: < /p>
static public var appShortcuts: [AppShortcut] {
AppShortcut(
intent: OpenAppIntent(),
phrases: ["Start \(.applicationName)"],
shortTitle: "Start nothing fancy title",
systemImageName: "dog.circle.fill"
)

/// `OpenShortcutIntent` allows people to quickly open shortucts.
if #available(iOS 17, *) {
AppShortcut(intent: OpenShortcutIntent(), phrases: [
"Play \(\.$shortcut)",
"Play \(\.$shortcut) on \(.applicationName)"
],
shortTitle: "Play Feature",
systemImageName: "cloud.rainbow.half",
parameterPresentation: ParameterPresentation(
for: \.$shortcut,
summary: Summary("Play \(\.$shortcut)"),
optionsCollections: {
OptionsCollection(ShortcutEntityQuery(), title: "Shortcuts", systemImageName: "cloud.rainbow.half")
}
))
} else {
// Fallback on earlier versions
}
}
< /code>
, которая создает следующую ошибку: < /p>
(Закрытие, содержащее оператор управляющего потока, не может использоваться с помощью Result Builder 'appshortcutsbuilder') < /p>
Если я попытаюсь не поддерживать ios 16 вообще с помощью приложений, таких как: < /p>
@available(iOS 17.0, *)
public class LaunchGameShortcuts: AppShortcutsProvider {
< /code>
Я получаю сбой в iOS16, потому что он не может найти намерение, когда я запускаю его из ярлыков. Я предполагаю, что процесс сборки Xcode создает некоторые метаданные, которые выявляются в iOS 16. < /p>
Причина, по которой я не могу разоблачить OpenShortCutintent, заключается в том, что: < /p>
'init(intent:phrases:shortTitle:systemImageName:parameterPresentation:)' is only available in iOS 17.0 or newer


Подробнее здесь: https://stackoverflow.com/questions/797 ... ing-ios-16
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»