<?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 Is there any alternative way to run multiple queries to different layers together? (iOS) in Developers Questions</title>
    <link>https://community.esri.com/t5/developers-questions/is-there-any-alternative-way-to-run-multiple/m-p/116697#M747</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In my case, I need to query from 3 map layers and get non-graphic information data and display them in 3 table lists.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried to use NSOperationQueue to manage&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;- (&lt;SPAN style="color: #703daa;"&gt;NSOperation&lt;/SPAN&gt; *)executeWithQuery:(&lt;SPAN style="color: #4f8187;"&gt;AGSQuery&lt;/SPAN&gt; *)query;&lt;/PRE&gt;&lt;P&gt;But this returned NSOperation is already running, thus cannot be added to NSOperationQueue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Below is how I roughly achieved but I really think it's a bad practice, because for this case I created 3 booleans and 3 AGSQueryTasks for 3 queries, and more variables will be needed if need to query from more layers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope you guys can have a better way to introduce.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;@interface MultipleQueryTest () &amp;lt;AGSQueryTaskDelegate&amp;gt;
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; BOOL _multipleQueryStart;
&amp;nbsp;&amp;nbsp;&amp;nbsp; BOOL _flagQueryOperationAComplete;
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;BOOL _flagQueryOperationBComplete;
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;BOOL _flagQueryOperationCComplete;

&amp;nbsp;&amp;nbsp;&amp;nbsp; AGSQueryTask *_queryTaskA;
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;AGSQueryTask *_queryTaskB;
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;AGSQueryTask *_queryTaskC;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NSArray *_resultA;
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NSArray *_resultB;
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NSArray *_resultC;
}
@end

@implementation MultipleQueryTest

- (&lt;SPAN style="color: #bb2ca2;"&gt;IBAction&lt;/SPAN&gt;)btnGoTapped:(&lt;SPAN style="color: #bb2ca2;"&gt;id&lt;/SPAN&gt;)sender
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; _multipleQueryStart = YES;

&amp;nbsp;&amp;nbsp;&amp;nbsp; // query A
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NSURL *layerAURL = [self getURLForLayer: eLayerA];
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NSArray *outFieldsA = [NSArray arrayWithObjects:@"field1", @"field2", ... nil];
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NSOperation *queryOpA = [self startQuyerOperationWithURL:layerAURL outFields:outFieldsA operationType:eOperationTypeA];

&amp;nbsp;&amp;nbsp;&amp;nbsp; quryOpA.name = @"operationA";
&amp;nbsp;&amp;nbsp;&amp;nbsp; _flagQueryOperationACompleted = NO;

&lt;SPAN style="line-height: 1.5;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // query B&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp; NSURL *layerBURL = [self getURLForLayer: eLayerB];
&amp;nbsp;&amp;nbsp; NSArray *outFieldsB = [NSArray arrayWithObjects:@"field1", @"field2", ... nil];
&amp;nbsp;&amp;nbsp; NSOperation *queryOpB = [self startQuyerOperationWithURL:layerBURL outFields:outFieldsB operationType:eOperationTypeB];
&amp;nbsp;&amp;nbsp; quryOpB.name = @"operationB";
&amp;nbsp;&amp;nbsp; _flagQueryOperationBCompleted = NO;

&amp;nbsp;&amp;nbsp; // query C
&amp;nbsp;&amp;nbsp; NSURL *layerCURL = [self getURLForLayer: eLayerC];
&amp;nbsp;&amp;nbsp; NSArray *outFieldsC = [NSArray arrayWithObjects:@"field1", @"field2", ... nil];
&amp;nbsp;&amp;nbsp; NSOperation *queryOpC = [self startQuyerOperationWithURL:layerCURL outFields:outFieldsC operationType:eOperationTypeC];
&amp;nbsp;&amp;nbsp; quryOpC.name = @"operationC";
&amp;nbsp;&amp;nbsp; _flagQueryOperationCCompleted = NO;
}

- (NSOperation *)startQuyerOperationWithURL:(NSURL *)layerURL outFields:(NSArray *)outFields operationType:(eOperationType)opType
{
&amp;nbsp;&amp;nbsp; AGSQuery *query = [AGSQuery query];
&amp;nbsp;&amp;nbsp; query.outSpatialReference = self.mapView.spatialReference;
&amp;nbsp;&amp;nbsp; query.outFields = outFields;
&amp;nbsp;&amp;nbsp; query.returnGeometry = NO;
&amp;nbsp;&amp;nbsp; AGSQueryTask queryTaskObj = [[AGSQueryTask alloc] initWithURL: layerURL];
&amp;nbsp;&amp;nbsp; queryTaskObj.delegate = self;

&amp;nbsp;&amp;nbsp; if (opType == eOperationTypeA)
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _queryTaskA = queryTaskObj;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return [_queryTaskA executeWithQuery:query];
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; else if (opType == eOperationTypeB)
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _queryTaskB = queryTaskObj;
&lt;SPAN style="line-height: 1.5;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return [_queryTaskB executeWithQuery:query];&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; else if (opType == eOperationTypeC)
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _queryTaskC = queryTaskObj;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return [_queryTaskC executeWithQuery:query];
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return nil;
}

#pragma mark - AGSQueryTaskDelegate

- (&lt;SPAN style="color: #bb2ca2;"&gt;void&lt;/SPAN&gt;)queryTask:(&lt;SPAN style="color: #4f8187;"&gt;AGSQueryTask&lt;/SPAN&gt; *)queryTask operation:(&lt;SPAN style="color: #703daa;"&gt;NSOperation&lt;/SPAN&gt; *)op didExecuteWithFeatureSetResult:(&lt;SPAN style="color: #4f8187;"&gt;AGSFeatureSet&lt;/SPAN&gt; *)featureSet
{
&lt;SPAN style="color: #bb2ca2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; (_multipleQueryStart&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;)&lt;/SPAN&gt;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{
&lt;SPAN style="color: #bb2ca2;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if&lt;/SPAN&gt; ([op.&lt;SPAN style="color: #703daa;"&gt;name&lt;/SPAN&gt; &lt;SPAN style="color: #3d1d81;"&gt;isEqualToString&lt;/SPAN&gt;:&lt;SPAN style="color: #78492a;"&gt;@"operationA"&lt;/SPAN&gt;]) {
&lt;SPAN style="color: #4f8187;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_resultA&lt;/SPAN&gt; = featureSet.&lt;SPAN style="color: #4f8187;"&gt;features&lt;/SPAN&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _flagQueryOperationACompleted = &lt;SPAN style="color: #bb2ca2;"&gt;YES&lt;/SPAN&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _queryTaskA = &lt;SPAN style="color: #bb2ca2;"&gt;nil&lt;/SPAN&gt;;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}
&lt;SPAN style="color: #bb2ca2;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2;"&gt;if&lt;/SPAN&gt; ([op.&lt;SPAN style="color: #703daa;"&gt;name&lt;/SPAN&gt; &lt;SPAN style="color: #3d1d81;"&gt;isEqualToString&lt;/SPAN&gt;:&lt;SPAN style="color: #78492a;"&gt;@"operationB"&lt;/SPAN&gt;]) {
&lt;SPAN style="color: #4f8187;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_resultB&lt;/SPAN&gt; = featureSet.&lt;SPAN style="color: #4f8187;"&gt;features&lt;/SPAN&gt;;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_flagQueryOperationBCompleted = &lt;SPAN style="color: #bb2ca2;"&gt;YES&lt;/SPAN&gt;;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_queryTaskB = &lt;SPAN style="color: #bb2ca2;"&gt;nil&lt;/SPAN&gt;;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}
&lt;SPAN style="color: #bb2ca2;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2;"&gt;if&lt;/SPAN&gt; ([op.&lt;SPAN style="color: #703daa;"&gt;name&lt;/SPAN&gt; &lt;SPAN style="color: #3d1d81;"&gt;isEqualToString&lt;/SPAN&gt;:&lt;SPAN style="color: #78492a;"&gt;@"operationC"&lt;/SPAN&gt;]) {
&lt;SPAN style="color: #4f8187;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_resultC&lt;/SPAN&gt; = featureSet.&lt;SPAN style="color: #4f8187;"&gt;features&lt;/SPAN&gt;;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_flagQueryOperationCCompleted = &lt;SPAN style="color: #bb2ca2;"&gt;YES&lt;/SPAN&gt;;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_queryTaskC = &lt;SPAN style="color: #bb2ca2;"&gt;nil&lt;/SPAN&gt;;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;SPAN style="color: #bb2ca2;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; (&lt;SPAN style="font-family: Menlo; font-size: 11px;"&gt;_flagQueryOperationACompleted&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &amp;amp;&amp;amp; &lt;SPAN style="font-family: Menlo; font-size: 11px;"&gt;_flagQueryOperationBCompleted&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #008400;"&gt; &amp;amp;&amp;amp; &lt;SPAN style="font-family: Menlo; font-size: 11px;"&gt;_flagQueryOperationCCompleted&lt;/SPAN&gt;)&lt;/SPAN&gt;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{
&lt;SPAN style="color: #78492a;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NSLog&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;(&lt;/SPAN&gt;@"All list received......."&lt;SPAN style="color: #000000;"&gt;);&lt;/SPAN&gt;
&lt;SPAN style="color: #000000; font-size: 11px; font-family: Menlo;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_multipleQueryStart&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; = &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2;"&gt;NO&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;SPAN style="color: #bb2ca2;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return&lt;/SPAN&gt;;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}
}
@end
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 06:51:38 GMT</pubDate>
    <dc:creator>QKunZhu</dc:creator>
    <dc:date>2021-12-11T06:51:38Z</dc:date>
    <item>
      <title>Is there any alternative way to run multiple queries to different layers together? (iOS)</title>
      <link>https://community.esri.com/t5/developers-questions/is-there-any-alternative-way-to-run-multiple/m-p/116697#M747</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In my case, I need to query from 3 map layers and get non-graphic information data and display them in 3 table lists.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried to use NSOperationQueue to manage&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;- (&lt;SPAN style="color: #703daa;"&gt;NSOperation&lt;/SPAN&gt; *)executeWithQuery:(&lt;SPAN style="color: #4f8187;"&gt;AGSQuery&lt;/SPAN&gt; *)query;&lt;/PRE&gt;&lt;P&gt;But this returned NSOperation is already running, thus cannot be added to NSOperationQueue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Below is how I roughly achieved but I really think it's a bad practice, because for this case I created 3 booleans and 3 AGSQueryTasks for 3 queries, and more variables will be needed if need to query from more layers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope you guys can have a better way to introduce.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;@interface MultipleQueryTest () &amp;lt;AGSQueryTaskDelegate&amp;gt;
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; BOOL _multipleQueryStart;
&amp;nbsp;&amp;nbsp;&amp;nbsp; BOOL _flagQueryOperationAComplete;
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;BOOL _flagQueryOperationBComplete;
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;BOOL _flagQueryOperationCComplete;

&amp;nbsp;&amp;nbsp;&amp;nbsp; AGSQueryTask *_queryTaskA;
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;AGSQueryTask *_queryTaskB;
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;AGSQueryTask *_queryTaskC;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NSArray *_resultA;
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NSArray *_resultB;
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NSArray *_resultC;
}
@end

@implementation MultipleQueryTest

- (&lt;SPAN style="color: #bb2ca2;"&gt;IBAction&lt;/SPAN&gt;)btnGoTapped:(&lt;SPAN style="color: #bb2ca2;"&gt;id&lt;/SPAN&gt;)sender
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; _multipleQueryStart = YES;

&amp;nbsp;&amp;nbsp;&amp;nbsp; // query A
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NSURL *layerAURL = [self getURLForLayer: eLayerA];
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NSArray *outFieldsA = [NSArray arrayWithObjects:@"field1", @"field2", ... nil];
&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NSOperation *queryOpA = [self startQuyerOperationWithURL:layerAURL outFields:outFieldsA operationType:eOperationTypeA];

&amp;nbsp;&amp;nbsp;&amp;nbsp; quryOpA.name = @"operationA";
&amp;nbsp;&amp;nbsp;&amp;nbsp; _flagQueryOperationACompleted = NO;

&lt;SPAN style="line-height: 1.5;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // query B&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp; NSURL *layerBURL = [self getURLForLayer: eLayerB];
&amp;nbsp;&amp;nbsp; NSArray *outFieldsB = [NSArray arrayWithObjects:@"field1", @"field2", ... nil];
&amp;nbsp;&amp;nbsp; NSOperation *queryOpB = [self startQuyerOperationWithURL:layerBURL outFields:outFieldsB operationType:eOperationTypeB];
&amp;nbsp;&amp;nbsp; quryOpB.name = @"operationB";
&amp;nbsp;&amp;nbsp; _flagQueryOperationBCompleted = NO;

&amp;nbsp;&amp;nbsp; // query C
&amp;nbsp;&amp;nbsp; NSURL *layerCURL = [self getURLForLayer: eLayerC];
&amp;nbsp;&amp;nbsp; NSArray *outFieldsC = [NSArray arrayWithObjects:@"field1", @"field2", ... nil];
&amp;nbsp;&amp;nbsp; NSOperation *queryOpC = [self startQuyerOperationWithURL:layerCURL outFields:outFieldsC operationType:eOperationTypeC];
&amp;nbsp;&amp;nbsp; quryOpC.name = @"operationC";
&amp;nbsp;&amp;nbsp; _flagQueryOperationCCompleted = NO;
}

- (NSOperation *)startQuyerOperationWithURL:(NSURL *)layerURL outFields:(NSArray *)outFields operationType:(eOperationType)opType
{
&amp;nbsp;&amp;nbsp; AGSQuery *query = [AGSQuery query];
&amp;nbsp;&amp;nbsp; query.outSpatialReference = self.mapView.spatialReference;
&amp;nbsp;&amp;nbsp; query.outFields = outFields;
&amp;nbsp;&amp;nbsp; query.returnGeometry = NO;
&amp;nbsp;&amp;nbsp; AGSQueryTask queryTaskObj = [[AGSQueryTask alloc] initWithURL: layerURL];
&amp;nbsp;&amp;nbsp; queryTaskObj.delegate = self;

&amp;nbsp;&amp;nbsp; if (opType == eOperationTypeA)
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _queryTaskA = queryTaskObj;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return [_queryTaskA executeWithQuery:query];
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; else if (opType == eOperationTypeB)
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _queryTaskB = queryTaskObj;
&lt;SPAN style="line-height: 1.5;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return [_queryTaskB executeWithQuery:query];&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; else if (opType == eOperationTypeC)
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _queryTaskC = queryTaskObj;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return [_queryTaskC executeWithQuery:query];
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return nil;
}

#pragma mark - AGSQueryTaskDelegate

- (&lt;SPAN style="color: #bb2ca2;"&gt;void&lt;/SPAN&gt;)queryTask:(&lt;SPAN style="color: #4f8187;"&gt;AGSQueryTask&lt;/SPAN&gt; *)queryTask operation:(&lt;SPAN style="color: #703daa;"&gt;NSOperation&lt;/SPAN&gt; *)op didExecuteWithFeatureSetResult:(&lt;SPAN style="color: #4f8187;"&gt;AGSFeatureSet&lt;/SPAN&gt; *)featureSet
{
&lt;SPAN style="color: #bb2ca2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; (_multipleQueryStart&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;)&lt;/SPAN&gt;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{
&lt;SPAN style="color: #bb2ca2;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if&lt;/SPAN&gt; ([op.&lt;SPAN style="color: #703daa;"&gt;name&lt;/SPAN&gt; &lt;SPAN style="color: #3d1d81;"&gt;isEqualToString&lt;/SPAN&gt;:&lt;SPAN style="color: #78492a;"&gt;@"operationA"&lt;/SPAN&gt;]) {
&lt;SPAN style="color: #4f8187;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_resultA&lt;/SPAN&gt; = featureSet.&lt;SPAN style="color: #4f8187;"&gt;features&lt;/SPAN&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _flagQueryOperationACompleted = &lt;SPAN style="color: #bb2ca2;"&gt;YES&lt;/SPAN&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _queryTaskA = &lt;SPAN style="color: #bb2ca2;"&gt;nil&lt;/SPAN&gt;;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}
&lt;SPAN style="color: #bb2ca2;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2;"&gt;if&lt;/SPAN&gt; ([op.&lt;SPAN style="color: #703daa;"&gt;name&lt;/SPAN&gt; &lt;SPAN style="color: #3d1d81;"&gt;isEqualToString&lt;/SPAN&gt;:&lt;SPAN style="color: #78492a;"&gt;@"operationB"&lt;/SPAN&gt;]) {
&lt;SPAN style="color: #4f8187;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_resultB&lt;/SPAN&gt; = featureSet.&lt;SPAN style="color: #4f8187;"&gt;features&lt;/SPAN&gt;;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_flagQueryOperationBCompleted = &lt;SPAN style="color: #bb2ca2;"&gt;YES&lt;/SPAN&gt;;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_queryTaskB = &lt;SPAN style="color: #bb2ca2;"&gt;nil&lt;/SPAN&gt;;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}
&lt;SPAN style="color: #bb2ca2;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2;"&gt;if&lt;/SPAN&gt; ([op.&lt;SPAN style="color: #703daa;"&gt;name&lt;/SPAN&gt; &lt;SPAN style="color: #3d1d81;"&gt;isEqualToString&lt;/SPAN&gt;:&lt;SPAN style="color: #78492a;"&gt;@"operationC"&lt;/SPAN&gt;]) {
&lt;SPAN style="color: #4f8187;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_resultC&lt;/SPAN&gt; = featureSet.&lt;SPAN style="color: #4f8187;"&gt;features&lt;/SPAN&gt;;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_flagQueryOperationCCompleted = &lt;SPAN style="color: #bb2ca2;"&gt;YES&lt;/SPAN&gt;;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_queryTaskC = &lt;SPAN style="color: #bb2ca2;"&gt;nil&lt;/SPAN&gt;;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;SPAN style="color: #bb2ca2;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; (&lt;SPAN style="font-family: Menlo; font-size: 11px;"&gt;_flagQueryOperationACompleted&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &amp;amp;&amp;amp; &lt;SPAN style="font-family: Menlo; font-size: 11px;"&gt;_flagQueryOperationBCompleted&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #008400;"&gt; &amp;amp;&amp;amp; &lt;SPAN style="font-family: Menlo; font-size: 11px;"&gt;_flagQueryOperationCCompleted&lt;/SPAN&gt;)&lt;/SPAN&gt;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{
&lt;SPAN style="color: #78492a;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NSLog&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;(&lt;/SPAN&gt;@"All list received......."&lt;SPAN style="color: #000000;"&gt;);&lt;/SPAN&gt;
&lt;SPAN style="color: #000000; font-size: 11px; font-family: Menlo;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_multipleQueryStart&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; = &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2;"&gt;NO&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;SPAN style="color: #bb2ca2;"&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return&lt;/SPAN&gt;;
&lt;SPAN style="color: #bb2ca2; font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}
}
@end
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 06:51:38 GMT</pubDate>
      <guid>https://community.esri.com/t5/developers-questions/is-there-any-alternative-way-to-run-multiple/m-p/116697#M747</guid>
      <dc:creator>QKunZhu</dc:creator>
      <dc:date>2021-12-11T06:51:38Z</dc:date>
    </item>
    <item>
      <title>Re: Is there any alternative way to run multiple queries to different layers together? (iOS)</title>
      <link>https://community.esri.com/t5/developers-questions/is-there-any-alternative-way-to-run-multiple/m-p/116698#M748</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Not sure if its too late for the reply, you create separate class with nsobject and agsquerytaskdelegate&amp;nbsp; and for each query task reference in your view controller assign the delegate to another class.&lt;/P&gt;&lt;P&gt;That way you will have 3 class with agsquerytaskdelegate and from view controller you are assigning delegates to each on them.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let me know if you need sample of codes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Varun Chudiwale&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 05 Mar 2016 00:50:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/developers-questions/is-there-any-alternative-way-to-run-multiple/m-p/116698#M748</guid>
      <dc:creator>VarunChudiwale3</dc:creator>
      <dc:date>2016-03-05T00:50:41Z</dc:date>
    </item>
  </channel>
</rss>

