Files
SwiftLint/attributes.html
T
2025-06-22 14:27:57 +00:00

650 lines
43 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<title>attributes Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset="utf-8">
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
<script src="js/lunr.min.js" defer></script>
<script src="js/typeahead.jquery.js" defer></script>
<script src="js/jazzy.search.js" defer></script>
</head>
<body>
<a title="attributes Reference"></a>
<header class="header">
<p class="header-col header-col--primary">
<a class="header-link" href="index.html">
SwiftLintCore 0.59.1 Docs
</a>
(100% documented)
</p>
<div class="header-col--secondary">
<form role="search" action="search.json">
<input type="text" placeholder="Search documentation" data-typeahead>
</form>
</div>
<p class="header-col header-col--secondary">
<a class="header-link" href="https://github.com/realm/SwiftLint">
<img class="header-icon" src="img/gh.png" alt="GitHub"/>
View on GitHub
</a>
</p>
<p class="header-col header-col--secondary">
<a class="header-link" href="dash-feed://https%3A%2F%2Frealm.github.io%2FSwiftLint%2Fdocsets%2FSwiftLintCore.xml">
<img class="header-icon" src="img/dash.png" alt="Dash"/>
Install in Dash
</a>
</p>
</header>
<p class="breadcrumbs">
<a class="breadcrumb" href="index.html">SwiftLintCore</a>
<img class="carat" src="img/carat.png" alt=""/>
<a class="breadcrumb" href="Guides.html">Guides</a>
<img class="carat" src="img/carat.png" alt=""/>
attributes Reference
</p>
<div class="content-wrapper">
<nav class="navigation">
<ul class="nav-groups">
<li class="nav-group-name">
<a class="nav-group-name-link" href="Rules.html">Rules</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="rule-directory.html">Rule Directory</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/BodyLengthVisitor.html">BodyLengthVisitor</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/CodeBlockVisitor.html">CodeBlockVisitor</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/CodeIndentingRewriter.html">CodeIndentingRewriter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/CodeIndentingRewriter/IndentationStyle.html"> IndentationStyle</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/DeclaredIdentifiersTrackingVisitor.html">DeclaredIdentifiersTrackingVisitor</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/RuleRegistry.html">RuleRegistry</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/RuleStorage.html">RuleStorage</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/SwiftLintFile.html">SwiftLintFile</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/ViolationsSyntaxRewriter.html">ViolationsSyntaxRewriter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/ViolationsSyntaxVisitor.html">ViolationsSyntaxVisitor</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/AccessControlLevel.html">AccessControlLevel</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/CurrentRule.html">CurrentRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/IdentifierDeclaration.html">IdentifierDeclaration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/Issue.html">Issue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/OptionType.html">OptionType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/RuleIdentifier.html">RuleIdentifier</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/RuleKind.html">RuleKind</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/RuleListError.html">RuleListError</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/SwiftExpressionKind.html">SwiftExpressionKind</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/SwiftSyntaxKindBridge.html">SwiftSyntaxKindBridge</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/ViolationSeverity.html">ViolationSeverity</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/Array.html">Array</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/Bool.html">Bool</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/Double.html">Double</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/Int.html">Int</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/Optional.html">Optional</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/Set.html">Set</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/String.html">String</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/ASTRule.html">ASTRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/AcceptableByConfigurationElement.html">AcceptableByConfigurationElement</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/AnalyzerRule.html">AnalyzerRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols.html#/s:13SwiftLintCore17AnyCollectingRuleP">AnyCollectingRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/CacheDescriptionProvider.html">CacheDescriptionProvider</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/CollectingRule.html">CollectingRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/ConditionallySourceKitFree.html">ConditionallySourceKitFree</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/CorrectableRule.html">CorrectableRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/Documentable.html">Documentable</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols.html#/s:13SwiftLintCore19InlinableOptionTypeP">InlinableOptionType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols.html#/s:13SwiftLintCore9OptInRuleP">OptInRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/Rule.html">Rule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/RuleConfiguration.html">RuleConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/SeverityBasedRuleConfiguration.html">SeverityBasedRuleConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols.html#/s:13SwiftLintCore17SourceKitFreeRuleP">SourceKitFreeRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/SubstitutionCorrectableRule.html">SubstitutionCorrectableRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/SwiftSyntaxCorrectableRule.html">SwiftSyntaxCorrectableRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/SwiftSyntaxRule.html">SwiftSyntaxRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/VersionComparable.html">VersionComparable</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/Baseline.html">Baseline</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/ChildOptionSeverityConfiguration.html">ChildOptionSeverityConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/Command.html">Command</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/Command/Action.html"> Action</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/Command/Modifier.html"> Modifier</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/ConfigurationElement.html">ConfigurationElement</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/ConfigurationElement/DeprecationNotice.html"> DeprecationNotice</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/Correction.html">Correction</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/Example.html">Example</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/Location.html">Location</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/ReasonedRuleViolation.html">ReasonedRuleViolation</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/ReasonedRuleViolation/ViolationCorrection.html"> ViolationCorrection</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/RegexConfiguration.html">RegexConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/RegexConfiguration/ExecutionMode.html"> ExecutionMode</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/Region.html">Region</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/RuleConfigurationDescription.html">RuleConfigurationDescription</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs.html#/s:13SwiftLintCore35RuleConfigurationDescriptionBuilderV">RuleConfigurationDescriptionBuilder</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/RuleConfigurationOption.html">RuleConfigurationOption</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/RuleDescription.html">RuleDescription</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/RuleList.html">RuleList</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/RuleParameter.html">RuleParameter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/SeverityConfiguration.html">SeverityConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/SeverityLevelsConfiguration.html">SeverityLevelsConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/Stack.html">Stack</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/StyleViolation.html">StyleViolation</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/SwiftLintSyntaxMap.html">SwiftLintSyntaxMap</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/SwiftLintSyntaxToken.html">SwiftLintSyntaxToken</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/SwiftVersion.html">SwiftVersion</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="Macros.html">Macros</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="Macros.html#/s:13SwiftLintCore32AcceptableByConfigurationElementyycfm">AcceptableByConfigurationElement()</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Macros.html#/s:13SwiftLintCore16AutoConfigParseryycfm">AutoConfigParser()</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Macros.html#/s:13SwiftLintCore0A10SyntaxRule15foldExpressions16explicitRewriter11correctable5optInySb_S3btcfm">SwiftSyntaxRule(foldExpressions:explicitRewriter:correctable:optIn:)</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section class="section">
<div class="section-content top-matter">
<h1 id='attributes' class='heading'>Attributes</h1>
<p>Attributes should be on their own lines in functions and types, but on the same line as variables and imports</p>
<ul>
<li><strong>Identifier:</strong> <code>attributes</code></li>
<li><strong>Enabled by default:</strong> No</li>
<li><strong>Supports autocorrection:</strong> No</li>
<li><strong>Kind:</strong> style</li>
<li><strong>Analyzer rule:</strong> No</li>
<li><strong>Minimum Swift compiler version:</strong> 5.0.0</li>
<li><strong>Default configuration:</strong>
<table>
<thead>
<tr><th>Key</th><th>Value</th></tr>
</thead>
<tbody>
<tr>
<td>
severity
</td>
<td>
warning
</td>
</tr>
<tr>
<td>
attributes_with_arguments_always_on_line_above
</td>
<td>
true
</td>
</tr>
<tr>
<td>
always_on_same_line
</td>
<td>
[&ldquo;@IBAction&rdquo;, &ldquo;@NSManaged&rdquo;]
</td>
</tr>
<tr>
<td>
always_on_line_above
</td>
<td>
[]
</td>
</tr>
</tbody>
</table></li>
</ul>
<h2 id='rationale' class='heading'>Rationale</h2>
<p>Erica Sadun says:</p>
<blockquote>
<p>My take on things after the poll and after talking directly with a number of developers is this: Placing attributes like <code>@objc</code>, <code>@testable</code>, <code>@available</code>, <code>@discardableResult</code> on their own lines before a member declaration has become a conventional Swift style.</p>
<p>This approach limits declaration length. It allows a member to float below its attribute and supports flush-left access modifiers, so <code>internal</code>, <code>public</code>, etc appear in the leftmost column. Many developers mix-and-match styles for short Swift attributes like <code>@objc</code></p>
</blockquote>
<p>See <a href="https://ericasadun.com/2016/10/02/quick-style-survey/">https://ericasadun.com/2016/10/02/quick-style-survey/</a> for discussion.</p>
<p>SwiftLint&rsquo;s rule requires attributes to be on their own lines for functions and types, but on the same line for variables and imports.</p>
<h2 id='non-triggering-examples' class='heading'>Non Triggering Examples</h2>
<pre class="highlight swift"><code><span class="kd">@objc</span> <span class="k">var</span> <span class="nv">x</span><span class="p">:</span> <span class="kt">String</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@objc</span> <span class="kd">private</span> <span class="k">var</span> <span class="nv">x</span><span class="p">:</span> <span class="kt">String</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@nonobjc</span> <span class="k">var</span> <span class="nv">x</span><span class="p">:</span> <span class="kt">String</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@IBOutlet</span> <span class="kd">private</span> <span class="k">var</span> <span class="nv">label</span><span class="p">:</span> <span class="kt">UILabel</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@IBOutlet</span> <span class="kd">@objc</span> <span class="kd">private</span> <span class="k">var</span> <span class="nv">label</span><span class="p">:</span> <span class="kt">UILabel</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@NSCopying</span> <span class="k">var</span> <span class="nv">name</span><span class="p">:</span> <span class="kt">NSString</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@NSManaged</span> <span class="k">var</span> <span class="nv">name</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@IBInspectable</span> <span class="k">var</span> <span class="nv">cornerRadius</span><span class="p">:</span> <span class="kt">CGFloat</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@available</span><span class="p">(</span><span class="n">iOS</span> <span class="mf">9.0</span><span class="p">,</span> <span class="o">*</span><span class="p">)</span>
<span class="k">let</span> <span class="nv">stackView</span><span class="p">:</span> <span class="kt">UIStackView</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@NSManaged</span> <span class="kd">func</span> <span class="nf">addSomeObject</span><span class="p">(</span><span class="nv">book</span><span class="p">:</span> <span class="kt">SomeObject</span><span class="p">)</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@IBAction</span> <span class="kd">func</span> <span class="nf">buttonPressed</span><span class="p">(</span><span class="nv">button</span><span class="p">:</span> <span class="kt">UIButton</span><span class="p">)</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@objc</span>
<span class="kd">@IBAction</span> <span class="kd">func</span> <span class="nf">buttonPressed</span><span class="p">(</span><span class="nv">button</span><span class="p">:</span> <span class="kt">UIButton</span><span class="p">)</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@available</span><span class="p">(</span><span class="n">iOS</span> <span class="mf">9.0</span><span class="p">,</span> <span class="o">*</span><span class="p">)</span>
<span class="kd">func</span> <span class="nf">animate</span><span class="p">(</span><span class="nv">view</span><span class="p">:</span> <span class="kt">UIStackView</span><span class="p">)</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@available</span><span class="p">(</span><span class="o">*</span><span class="p">,</span> <span class="n">deprecated</span><span class="p">,</span> <span class="nv">message</span><span class="p">:</span> <span class="s">"A message"</span><span class="p">)</span>
<span class="kd">func</span> <span class="nf">animate</span><span class="p">(</span><span class="nv">view</span><span class="p">:</span> <span class="kt">UIStackView</span><span class="p">)</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@nonobjc</span>
<span class="kd">final</span> <span class="kd">class</span> <span class="kt">X</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@available</span><span class="p">(</span><span class="n">iOS</span> <span class="mf">9.0</span><span class="p">,</span> <span class="o">*</span><span class="p">)</span>
<span class="kd">class</span> <span class="kt">UIStackView</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@NSApplicationMain</span>
<span class="kd">class</span> <span class="kt">AppDelegate</span><span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">NSApplicationDelegate</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@UIApplicationMain</span>
<span class="kd">class</span> <span class="kt">AppDelegate</span><span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">UIApplicationDelegate</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@IBDesignable</span>
<span class="kd">class</span> <span class="kt">MyCustomView</span><span class="p">:</span> <span class="kt">UIView</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@testable</span> <span class="kd">import</span> <span class="kt">SourceKittenFramework</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@objc</span><span class="p">(</span><span class="n">foo_x</span><span class="p">)</span>
<span class="k">var</span> <span class="nv">x</span><span class="p">:</span> <span class="kt">String</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@available</span><span class="p">(</span><span class="n">iOS</span> <span class="mf">9.0</span><span class="p">,</span> <span class="o">*</span><span class="p">)</span>
<span class="kd">@objc</span><span class="p">(</span><span class="n">abc_stackView</span><span class="p">)</span>
<span class="k">let</span> <span class="nv">stackView</span><span class="p">:</span> <span class="kt">UIStackView</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@objc</span><span class="p">(</span><span class="nv">abc_addSomeObject</span><span class="p">:)</span>
<span class="kd">@NSManaged</span> <span class="kd">func</span> <span class="nf">addSomeObject</span><span class="p">(</span><span class="nv">book</span><span class="p">:</span> <span class="kt">SomeObject</span><span class="p">)</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@objc</span><span class="p">(</span><span class="kt">ABCThing</span><span class="p">)</span>
<span class="kd">@available</span><span class="p">(</span><span class="n">iOS</span> <span class="mf">9.0</span><span class="p">,</span> <span class="o">*</span><span class="p">)</span>
<span class="kd">class</span> <span class="kt">Thing</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">Foo</span><span class="p">:</span> <span class="kt">NSObject</span> <span class="p">{</span>
<span class="k">override</span> <span class="k">var</span> <span class="nv">description</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">return</span> <span class="s">""</span> <span class="p">}</span>
<span class="p">}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">Foo</span><span class="p">:</span> <span class="kt">NSObject</span> <span class="p">{</span>
<span class="k">override</span> <span class="kd">func</span> <span class="nf">setUp</span><span class="p">()</span> <span class="p">{}</span>
<span class="p">}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@objc</span>
<span class="kd">class</span> <span class="err"></span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">extension</span> <span class="kt">Property</span> <span class="p">{</span>
<span class="kd">@available</span><span class="p">(</span><span class="o">*</span><span class="p">,</span> <span class="n">unavailable</span><span class="p">,</span> <span class="nv">renamed</span><span class="p">:</span> <span class="s">"isOptional"</span><span class="p">)</span>
<span class="kd">public</span> <span class="k">var</span> <span class="nv">optional</span><span class="p">:</span> <span class="kt">Bool</span> <span class="p">{</span> <span class="nf">fatalError</span><span class="p">()</span> <span class="p">}</span>
<span class="p">}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@GKInspectable</span> <span class="k">var</span> <span class="nv">maxSpeed</span><span class="p">:</span> <span class="kt">Float</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@discardableResult</span>
<span class="kd">func</span> <span class="nf">a</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">Int</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@objc</span>
<span class="kd">@discardableResult</span>
<span class="kd">func</span> <span class="nf">a</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">Int</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">increase</span><span class="p">(</span><span class="nv">f</span><span class="p">:</span> <span class="kd">@autoclosure</span> <span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">Int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Int</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">foo</span><span class="p">(</span><span class="nv">completionHandler</span><span class="p">:</span> <span class="kd">@escaping</span> <span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">Void</span><span class="p">)</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">private</span> <span class="kd">struct</span> <span class="kt">DefaultError</span><span class="p">:</span> <span class="kt">Error</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@testable</span> <span class="kd">import</span> <span class="n">foo</span>
<span class="kd">private</span> <span class="k">let</span> <span class="nv">bar</span> <span class="o">=</span> <span class="mi">1</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">import</span> <span class="kt">XCTest</span>
<span class="kd">@testable</span> <span class="kd">import</span> <span class="kt">DeleteMe</span>
<span class="kd">@available</span> <span class="p">(</span><span class="n">iOS</span> <span class="mf">11.0</span><span class="p">,</span> <span class="o">*</span><span class="p">)</span>
<span class="kd">class</span> <span class="kt">DeleteMeTests</span><span class="p">:</span> <span class="kt">XCTestCase</span> <span class="p">{</span>
<span class="p">}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@objc</span>
<span class="kd">internal</span> <span class="kd">func</span> <span class="nf">foo</span><span class="p">(</span><span class="nv">identifier</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kd">@escaping</span> <span class="p">(()</span> <span class="o">-&gt;</span> <span class="kt">Void</span><span class="p">))</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@objc</span>
<span class="kd">internal</span> <span class="kd">func</span> <span class="nf">foo</span><span class="p">(</span><span class="nv">identifier</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kd">@autoclosure</span> <span class="p">(()</span> <span class="o">-&gt;</span> <span class="kt">Bool</span><span class="p">))</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">printBoolOrTrue</span><span class="p">(</span><span class="n">_</span> <span class="nv">expression</span><span class="p">:</span> <span class="kd">@autoclosure</span> <span class="p">()</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt">Bool</span><span class="p">?)</span> <span class="k">rethrows</span> <span class="p">{</span>
<span class="k">try</span> <span class="nf">print</span><span class="p">(</span><span class="nf">expression</span><span class="p">()</span> <span class="p">??</span> <span class="kc">true</span><span class="p">)</span>
<span class="p">}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">import</span> <span class="kt">Foundation</span>
<span class="kd">class</span> <span class="kt">MyClass</span><span class="p">:</span> <span class="kt">NSObject</span> <span class="p">{</span>
<span class="kd">@objc</span><span class="p">(</span>
<span class="nv">first</span><span class="p">:</span>
<span class="p">)</span>
<span class="kd">static</span> <span class="kd">func</span> <span class="nf">foo</span><span class="p">(</span><span class="nv">first</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="p">{}</span>
<span class="p">}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">refreshable</span><span class="p">(</span><span class="nv">action</span><span class="p">:</span> <span class="kd">@escaping</span> <span class="kd">@Sendable</span> <span class="p">()</span> <span class="k">async</span> <span class="o">-&gt;</span> <span class="kt">Void</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kd">some</span> <span class="kt">View</span> <span class="p">{</span>
<span class="nf">modifier</span><span class="p">(</span><span class="kt">RefreshableModifier</span><span class="p">(</span><span class="nv">action</span><span class="p">:</span> <span class="n">action</span><span class="p">))</span>
<span class="p">}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">import</span> <span class="kt">AppKit</span>
<span class="kd">@NSApplicationMain</span>
<span class="kd">@MainActor</span>
<span class="kd">final</span> <span class="kd">class</span> <span class="kt">AppDelegate</span><span class="p">:</span> <span class="kt">NSAppDelegate</span> <span class="p">{}</span>
</code></pre>
<h2 id='triggering-examples' class='heading'>Triggering Examples</h2>
<pre class="highlight swift"><code><span class="kd">@objc</span>
<span class="err"></span><span class="k">var</span> <span class="nv">x</span><span class="p">:</span> <span class="kt">String</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@objc</span>
<span class="err"></span><span class="k">var</span> <span class="nv">x</span><span class="p">:</span> <span class="kt">String</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@objc</span>
<span class="kd">private</span> <span class="err"></span><span class="k">var</span> <span class="nv">x</span><span class="p">:</span> <span class="kt">String</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@nonobjc</span>
<span class="err"></span><span class="k">var</span> <span class="nv">x</span><span class="p">:</span> <span class="kt">String</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@IBOutlet</span>
<span class="kd">private</span> <span class="err"></span><span class="k">var</span> <span class="nv">label</span><span class="p">:</span> <span class="kt">UILabel</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@IBOutlet</span>
<span class="kd">private</span> <span class="err"></span><span class="k">var</span> <span class="nv">label</span><span class="p">:</span> <span class="kt">UILabel</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@NSCopying</span>
<span class="err"></span><span class="k">var</span> <span class="nv">name</span><span class="p">:</span> <span class="kt">NSString</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@NSManaged</span>
<span class="err"></span><span class="k">var</span> <span class="nv">name</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@IBInspectable</span>
<span class="err"></span><span class="k">var</span> <span class="nv">cornerRadius</span><span class="p">:</span> <span class="kt">CGFloat</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@available</span><span class="p">(</span><span class="n">iOS</span> <span class="mf">9.0</span><span class="p">,</span> <span class="o">*</span><span class="p">)</span> <span class="err"></span><span class="k">let</span> <span class="nv">stackView</span><span class="p">:</span> <span class="kt">UIStackView</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@NSManaged</span>
<span class="err"></span><span class="kd">func</span> <span class="nf">addSomeObject</span><span class="p">(</span><span class="nv">book</span><span class="p">:</span> <span class="kt">SomeObject</span><span class="p">)</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@IBAction</span>
<span class="err"></span><span class="kd">func</span> <span class="nf">buttonPressed</span><span class="p">(</span><span class="nv">button</span><span class="p">:</span> <span class="kt">UIButton</span><span class="p">)</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@IBAction</span>
<span class="kd">@objc</span>
<span class="err"></span><span class="kd">func</span> <span class="nf">buttonPressed</span><span class="p">(</span><span class="nv">button</span><span class="p">:</span> <span class="kt">UIButton</span><span class="p">)</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@available</span><span class="p">(</span><span class="n">iOS</span> <span class="mf">9.0</span><span class="p">,</span> <span class="o">*</span><span class="p">)</span> <span class="err"></span><span class="kd">func</span> <span class="nf">animate</span><span class="p">(</span><span class="nv">view</span><span class="p">:</span> <span class="kt">UIStackView</span><span class="p">)</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@nonobjc</span> <span class="kd">final</span> <span class="err"></span><span class="kd">class</span> <span class="kt">X</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@available</span><span class="p">(</span><span class="n">iOS</span> <span class="mf">9.0</span><span class="p">,</span> <span class="o">*</span><span class="p">)</span> <span class="err"></span><span class="kd">class</span> <span class="kt">UIStackView</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@available</span><span class="p">(</span><span class="n">iOS</span> <span class="mf">9.0</span><span class="p">,</span> <span class="o">*</span><span class="p">)</span>
<span class="kd">@objc</span> <span class="err"></span><span class="kd">class</span> <span class="kt">UIStackView</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@available</span><span class="p">(</span><span class="n">iOS</span> <span class="mf">9.0</span><span class="p">,</span> <span class="o">*</span><span class="p">)</span> <span class="kd">@objc</span>
<span class="err"></span><span class="kd">class</span> <span class="kt">UIStackView</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@available</span><span class="p">(</span><span class="n">iOS</span> <span class="mf">9.0</span><span class="p">,</span> <span class="o">*</span><span class="p">)</span>
<span class="err"></span><span class="kd">class</span> <span class="kt">UIStackView</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@UIApplicationMain</span> <span class="err"></span><span class="kd">class</span> <span class="kt">AppDelegate</span><span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">UIApplicationDelegate</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@IBDesignable</span> <span class="err"></span><span class="kd">class</span> <span class="kt">MyCustomView</span><span class="p">:</span> <span class="kt">UIView</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@testable</span>
<span class="err"></span><span class="kd">import</span> <span class="kt">SourceKittenFramework</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@testable</span>
<span class="err"></span><span class="kd">import</span> <span class="kt">SourceKittenFramework</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@available</span><span class="p">(</span><span class="n">iOS</span> <span class="mf">9.0</span><span class="p">,</span> <span class="o">*</span><span class="p">)</span> <span class="kd">@objc</span><span class="p">(</span><span class="n">abc_stackView</span><span class="p">)</span>
<span class="err"></span><span class="k">let</span> <span class="nv">stackView</span><span class="p">:</span> <span class="kt">UIStackView</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@objc</span><span class="p">(</span><span class="nv">abc_addSomeObject</span><span class="p">:)</span> <span class="kd">@NSManaged</span>
<span class="err"></span><span class="kd">func</span> <span class="nf">addSomeObject</span><span class="p">(</span><span class="nv">book</span><span class="p">:</span> <span class="kt">SomeObject</span><span class="p">)</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@objc</span><span class="p">(</span><span class="nv">abc_addSomeObject</span><span class="p">:)</span>
<span class="kd">@NSManaged</span>
<span class="err"></span><span class="kd">func</span> <span class="nf">addSomeObject</span><span class="p">(</span><span class="nv">book</span><span class="p">:</span> <span class="kt">SomeObject</span><span class="p">)</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@available</span><span class="p">(</span><span class="n">iOS</span> <span class="mf">9.0</span><span class="p">,</span> <span class="o">*</span><span class="p">)</span>
<span class="kd">@objc</span><span class="p">(</span><span class="kt">ABCThing</span><span class="p">)</span> <span class="err"></span><span class="kd">class</span> <span class="kt">Thing</span> <span class="p">{}</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@GKInspectable</span>
<span class="err"></span><span class="k">var</span> <span class="nv">maxSpeed</span><span class="p">:</span> <span class="kt">Float</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@discardableResult</span> <span class="err"></span><span class="kd">func</span> <span class="nf">a</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">Int</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@objc</span>
<span class="kd">@discardableResult</span> <span class="err"></span><span class="kd">func</span> <span class="nf">a</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">Int</span>
</code></pre>
<pre class="highlight swift"><code><span class="kd">@objc</span>
<span class="kd">@discardableResult</span>
<span class="err"></span><span class="kd">func</span> <span class="nf">a</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">Int</span>
</code></pre>
</div>
</section>
</article>
</div>
<section class="footer">
<p>© 2023 <a class="link" href="https://jpsim.com" target="_blank" rel="external noopener">JP Simard</a> under MIT.</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external noopener">jazzy ♪♫ v0.15.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external noopener">Realm</a> project.</p>
</section>
</body>
</html>