2016-02-26 70 views
0

我正在学习iOS和我想在我的RootViewControllerSearchBar和SearchDisplay控制器创造,我要表现出我的SearchBar从JSON(URL)的表达。我有问题,NSPredicate predicateWithFormat。 下面是我的代码:如何在JSON中使用谓词?

-(void)searchThroughData{ 
self.results = nil; 
NSPredicate *resultsPredicate = [NSPredicate predicateWithFormat:@"expression", self.searchBar.text]; 
self.results = [[self.finalResultArray filteredArrayUsingPredicate:resultsPredicate] mutableCopy];} 

JSON(URL)文件:

{phrase: 
[ 
{ 
    expression: "ios", 
    meaning: "bla bla bla bla bla" 
    }, 
{ 
    expression: "objc", 
    meaning: "Hello Stack" 
    } 
] 
} 

我如何使用NSPredicate?请帮帮我。

回答

0

要与JS沟通,你应该使用JSContext。它看起来像:

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    self.jsContext = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; 
    self.jsContext[@"phrase"] = self; 
    self.jsContext.exceptionHandler = ^(JSContext *context, JSValue *exceptionValue) { 
     context.exception = exceptionValue; 
     NSLog(@"exception:%@", exceptionValue); 
    }; 
} 

,然后在你的JS添加方法。

1
NSArray *fileterArray= [self.finalResultArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self.%@ contains[c] %@ ,@"expression",self.searchBar.text]]; 

NSLog(@"Filterd Array:-%@",fileterArray); 
+0

我这样做,但我仍然有错误,你能帮我吗,我可以在哪里犯错? http://pastebin.com/AfiG2uQK – mechu911

+0

哪种错误的??? –

+0

- [UITableView的文本]:无法识别的选择发送到实例0x7b9de000 – mechu911