배열을 반복하고 새로운 배열에 항목을 추가하려고합니다. addObject
부분이 블록 안에 있습니다. 뭔가 새로운 배열에 개체가 추가되는 것을 막는 것 같습니다. 블록이 문제를 일으키는 지 궁금합니다.블록 내부에서 배열에 추가하기
그것은 다음과 같이 진행한다 :
-(void)queryForID
{
NSLog(@"QUERY FOR ID");
self.REST = [[AIREST alloc] init];
[self.REST querySchema:@"business" searchString:@"object_id" fromArray:self.json.objects];
}
AIREST.h
#import <Foundation/Foundation.h>
#import "StackMob.h"
@interface AIREST : NSObject
-(void)querySchema:(NSString *)schema searchString:(NSString *)searchString fromArray:(NSArray *)searchArray;
@property (nonatomic, strong) NSMutableArray *queryResults;
@end
AIREST.m
-(void)querySchema:(NSString *)schema searchString:(NSString *)searchString fromArray:(NSArray *)searchArray
{
self.queryResults = [[NSMutableArray alloc] init];
for (int i = 0; i < [searchArray count]; i++)
{
MyObject *myObject = searchArray[i];
SMQuery *newQuery = [[SMQuery alloc] initWithSchema:schema];
[newQuery where:searchString isEqualTo:myObject.objectID];
[[[SMClient defaultClient] dataStore] performQuery:newQuery onSuccess:^(NSArray *results) {
// results contains an array of dictionary objects that match the query
if ([results count] > 0)
{
[self.queryResults addObject:results];
NSLog(@"QUERY: %@", self.queryResults);
}
} onFailure:^(NSError *error) {
// Error
NSLog(@"QUERY ERROR: %@", error);
}];
}
[[NSNotificationCenter defaultCenter] postNotificationName:@"gotQueryResults" object:nil];
}
를 루프의 끝에서 NSLog
self.queryResults
인쇄의 내용, 이후 self.queryResults
이 비어있는 것으로 나타납니다. 이게 말이 되니?
게시하시기 바랍니다. AIREST.h – teh1
게시하기 전에 'self.queryResults'를 출력하는 NSLog는 어디에 있습니까? –