debugCheckHasCupertinoLocalizations function
- BuildContext context
Asserts that the given context has a Localizations ancestor that contains a CupertinoLocalizations delegate.
To call this function, use the following pattern, typically in the relevant Widget's build method:
assert(debugCheckHasCupertinoLocalizations(context));
Always place this before any early returns, so that the invariant is checked in all cases. This prevents bugs from hiding until a particular codepath is hit.
Does nothing if asserts are disabled. Always returns true.
Implementation
bool debugCheckHasCupertinoLocalizations(BuildContext context) {
assert(() {
if (Localizations.of<CupertinoLocalizations>(context, CupertinoLocalizations) == null) {
throw FlutterError.fromParts(<DiagnosticsNode>[
ErrorSummary('No CupertinoLocalizations found.'),
ErrorDescription(
'${context.widget.runtimeType} widgets require CupertinoLocalizations '
'to be provided by a Localizations widget ancestor.',
),
ErrorDescription(
'The cupertino library uses Localizations to generate messages, '
'labels, and abbreviations.',
),
ErrorHint(
'To introduce a CupertinoLocalizations, either use a '
'CupertinoApp at the root of your application to include them '
'automatically, or add a Localization widget with a '
'CupertinoLocalizations delegate.',
),
...context.describeMissingAncestor(expectedAncestorType: CupertinoLocalizations),
]);
}
return true;
}());
return true;
}