패턴 일치 프로그램은 URL 쿼리 문자열의 패턴과 일치시킬 수 없습니다. 쿼리의 모든 내용은 별도로 처리해야합니다. URL 경로에 대해 패턴 일치를 수행 한 다음 패턴이 일치하는 경우 매개 변수를 쿼리하고 처리해야합니다.
이 패턴 일치 제한은 삭제 처리 범위 외에도 적용됩니다.
따라서 패턴을 /api/rest/productionparameters
과 일치하도록 설정하십시오. 일치하는 항목을 얻으려면 을 URL
에서 가져오고 싶습니다. 그런 다음 componentsSeparatedByString:
을 사용하여 쿼리 매개 변수를 키 값 쌍으로 분할 한 다음 equipment
을 찾을 때까지 각 쌍을 처리하고 id
을 추출 할 수 있습니다.
덧붙여 말하자면, 패턴 매개 변수를 equipment_id
으로 설정했기 때문에 패턴은 결코 [argsDict objectForKey:@"id"]
을 반환하지 않습니다.
은 ... 당신은 아마 배열이 너무 계산에 대한 몇 가지 검사를 추가 할, 그래서 확인 아이 패드에 입력 :
[objectManager addFetchRequestBlock:^NSFetchRequest *(NSURL *URL) {
RKPathMatcher *pathMatcher = [RKPathMatcher pathMatcherWithPattern:@"/api/rest/productionparameters"];
NSDictionary *argsDict = nil;
BOOL match = [pathMatcher matchesPath:[URL relativePath] tokenizeQueryStrings:NO parsedArguments:&argsDict];
NSString *productionParameterID;
if (match) {
NSArray queryItems = [[URL query] componentsSeparatedByString:@"&"];
for (NSString *item in queryItems) {
NSArray *keyValPair = [item componentsSeparatedByString:@"="];
if ([keyValPair[0] isEqualToString:@"equipment"]) {
productionParameterID = keyValPair[1];
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"ProductionParameter"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"identifier = %@", @([productionParameterID integerValue])]; // NOTE: Coerced from string to number
fetchRequest.sortDescriptors = @[ [NSSortDescriptor sortDescriptorWithKey:@"order" ascending:YES] ];
return fetchRequest;
}
}
}
return nil;
}];
이 작업을 수행하는 방법에 대한 자세한 정보를 제공해 주시겠습니까? 나는이 URL/매칭 물건에 상당히 새로운 것이다. – abisson
약간의 샘플 코드 – Wain
이 작업을 다시 시도하려고합니다 ... URL/api/rest/productionparameters (ProductionParameters 개체에 매핑 됨)를 사용하여 개체를 가져올 수 있는지 궁금합니다. addFetchRequestBlock은 ProductionParameters 객체 만 비교하거나 ProductionParameters의 propertyMapping도 비교합니까? – abisson