<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: AGSLayerDelegate in Quartz in ArcGIS Runtime SDK for iOS Questions</title>
    <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/agslayerdelegate-in-quartz/m-p/254386#M2391</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In Runtime v100, the Loadable Pattern is key.&amp;nbsp;There's a great section in the Guide that talks about Loadable Resources:&amp;nbsp;&lt;A class="link-titled" href="https://developers.arcgis.com/ios/latest/swift/guide/loadable-pattern.htm" title="https://developers.arcgis.com/ios/latest/swift/guide/loadable-pattern.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;Loadable pattern for asynchronous resources—ArcGIS Runtime SDK for iOS | ArcGIS for Developers&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So let's say you have a layer, you can check that it's loaded or failed to load with code like this (Swift 3 syntax):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;layer&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;load&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt; error &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; guard error &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; nil &lt;SPAN class="keyword token"&gt;else&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;// The layer failed to load&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;print&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"Error loading the layer \(error?.localizedDescription)"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;// Now the layer has loaded and we can do something here.&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;print&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"Layer \(layer.name) loaded OK!"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A really neat aspect of this is that you can call&amp;nbsp;".load()" multiple times with&amp;nbsp;multiple handlers and they'll all get called when the resource loads. In addition, if the resource has already loaded, the handler will just get called immediately. That's all described in more detail at the above link.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 12:34:08 GMT</pubDate>
    <dc:creator>Nicholas-Furness</dc:creator>
    <dc:date>2021-12-11T12:34:08Z</dc:date>
    <item>
      <title>AGSLayerDelegate in Quartz</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/agslayerdelegate-in-quartz/m-p/254385#M2390</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;How can I be notified when a layer&amp;nbsp;has finished loading or failed to load? Previously, there were&amp;nbsp;the layerDidLoad: and layer:didFailToLoadWithError: methods of the&amp;nbsp;&lt;SPAN class="" style="border: 0px; font-weight: inherit;"&gt;AGSLayerDelegate protocol. One could adopt that protocol and set a&amp;nbsp;layer's delegate to be notified. How can this be accomplished in Quartz?&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Nov 2016 21:04:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/agslayerdelegate-in-quartz/m-p/254385#M2390</guid>
      <dc:creator>JamesRichards1</dc:creator>
      <dc:date>2016-11-22T21:04:25Z</dc:date>
    </item>
    <item>
      <title>Re: AGSLayerDelegate in Quartz</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/agslayerdelegate-in-quartz/m-p/254386#M2391</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In Runtime v100, the Loadable Pattern is key.&amp;nbsp;There's a great section in the Guide that talks about Loadable Resources:&amp;nbsp;&lt;A class="link-titled" href="https://developers.arcgis.com/ios/latest/swift/guide/loadable-pattern.htm" title="https://developers.arcgis.com/ios/latest/swift/guide/loadable-pattern.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;Loadable pattern for asynchronous resources—ArcGIS Runtime SDK for iOS | ArcGIS for Developers&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So let's say you have a layer, you can check that it's loaded or failed to load with code like this (Swift 3 syntax):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;layer&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;load&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt; error &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; guard error &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; nil &lt;SPAN class="keyword token"&gt;else&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;// The layer failed to load&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;print&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"Error loading the layer \(error?.localizedDescription)"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;// Now the layer has loaded and we can do something here.&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;print&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"Layer \(layer.name) loaded OK!"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A really neat aspect of this is that you can call&amp;nbsp;".load()" multiple times with&amp;nbsp;multiple handlers and they'll all get called when the resource loads. In addition, if the resource has already loaded, the handler will just get called immediately. That's all described in more detail at the above link.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 12:34:08 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/agslayerdelegate-in-quartz/m-p/254386#M2391</guid>
      <dc:creator>Nicholas-Furness</dc:creator>
      <dc:date>2021-12-11T12:34:08Z</dc:date>
    </item>
    <item>
      <title>Re: AGSLayerDelegate in Quartz</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/agslayerdelegate-in-quartz/m-p/254387#M2392</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Nicholas is correct. The other thing is with Quartz you may not need to know when your layer loads - depending on why you were listening for the load delegate. If it was for authentication purposes then the new AGSAuthenticationManager will handle that for you.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Nov 2016 22:25:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/agslayerdelegate-in-quartz/m-p/254387#M2392</guid>
      <dc:creator>RyanOlson1</dc:creator>
      <dc:date>2016-11-22T22:25:48Z</dc:date>
    </item>
  </channel>
</rss>

