iOS: Implement search / filtering
This commit is contained in:
parent
3c8b2d1d7d
commit
d916043c03
7 changed files with 103 additions and 47 deletions
|
@ -83,21 +83,26 @@ static OFNumber *lengthField, *legacyField;
|
|||
[super dealloc];
|
||||
}
|
||||
|
||||
- (OFArray<OFString *> *)sites
|
||||
- (OFArray<OFString *> *)sitesWithFilter: (OFString *)filter
|
||||
{
|
||||
void *pool = objc_autoreleasePoolPush();
|
||||
OFArray *sites = [[_storage allKeys] sortedArray];
|
||||
/*
|
||||
* FIXME: We need case folding here, but there is no method for it yet.
|
||||
*/
|
||||
filter = [filter lowercaseString];
|
||||
OFArray *sites = [[[_storage allKeys] sortedArray]
|
||||
filteredArrayUsingBlock: ^ (id name, size_t index) {
|
||||
if (filter == nil)
|
||||
return true;
|
||||
|
||||
return [[name lowercaseString] containsString: filter];
|
||||
}];
|
||||
|
||||
[sites retain];
|
||||
objc_autoreleasePoolPop(pool);
|
||||
return [sites autorelease];
|
||||
}
|
||||
|
||||
- (size_t)sitesCount
|
||||
{
|
||||
return [_storage count];
|
||||
}
|
||||
|
||||
- (bool)hasSite: (OFString *)name
|
||||
{
|
||||
return (_storage[name] != nil);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue