2016-02-26 120 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