0

と を使用PFQueryTableViewControllerしてUISearchBarいます。私は使用していませんUISearchBarDisplayController。基になるクエリは、検索文字列を小文字または大文字で記述した場合にのみ検索されます。両方使いたい。小文字でも大文字でも検索してくれます。これは私のコードです。

-(PFQuery *)queryForTable
{
 PFQuery *query;
 if (self.canSearch == 0) {
 query = [PFQuery queryWithClassName:@"_User"];
 } else {
 query = [PFQuery queryWithClassName:@"_User"];
 //This is searchbar text.
 //NSString *searchThis = [_searchbar.text upercaseString];
 NSString *searchThis = [_searchbar.text lowercaseString];
 [query whereKey:@"username" containsString:searchThis];
 }
 [query orderByAscending:@"username"];
 // If Pull To Refresh is enabled, query against the network by default.
 if (self.pullToRefreshEnabled) {
    query.cachePolicy = kPFCachePolicyNetworkOnly;
  }
// If no objects are loaded in memory, we look to the cache first to fill the   table
// and then subsequently do a query against the network.
if (self.objects.count == 0) {
    query.cachePolicy = kPFCachePolicyCacheThenNetwork;
 } 
 return query;
 }
4

1 に答える 1

0
- (PFQuery *)queryForTable {

    // Use cached facebook friend ids
    PFQuery *query = [PFUser query];
    [query whereKey:@"Useridentifier" matchesRegex:searchBar_User.text];

    PFQuery *query1 = [PFUser query];
    [query1 whereKey:@"displayName" matchesRegex:searchBar_User.text];


    PFQuery *userQuery = [PFQuery orQueryWithSubqueries:@[query, query1]];
    userQuery.cachePolicy = kPFCachePolicyNetworkOnly;

    if (self.objects.count == 0)
    {
        userQuery.cachePolicy = kPFCachePolicyCacheThenNetwork;
    }
    [userQuery orderByAscending:kPAPUserDisplayNameKey];
    return userQuery;

    return query;
}

こんにちは、変数でこれを管理することはできません。下に私のコードを表示するだけです

このコードはあなたにとって非常に役立つと思います...

于 2015-05-14T13:51:38.883 に答える