Monday, May 20, 2013

NSString NSAnchoredSearch example ios

Search and Comparison Options - NSAnchoredSearch

These values represent the options available to many of the string classes’ search and comparison methods.
enum {
   NSCaseInsensitiveSearch = 1,
   NSLiteralSearch = 2,
   NSBackwardsSearch = 4,
   NSAnchoredSearch = 8,
   NSNumericSearch = 64,
   NSDiacriticInsensitiveSearch = 128,
   NSWidthInsensitiveSearch = 256,
   NSForcedOrderingSearch = 512,
   NSRegularExpressionSearch = 1024
A case-insensitive search.
Exact character-by-character equivalence.
Search from end of source string.[NSString NSAnchoredSearch]
Search is limited to start (or end, if NSBackwardsSearch) of source string.
Numbers within strings are compared using numeric value, that is, Name2.txt <Name7.txt < Name25.txt.
This option only applies to compare methods, not find.
Search ignores diacritic marks.[NSString NSAnchoredSearch]
For example, ‘รถ’ is equal to ‘o’.
Search ignores width differences in characters that have full-width and half-width forms, as occurs in East Asian character sets.
For example, with this option, the full-width Latin small letter 'a' (Unicode code point U+FF41) is equal to the basic Latin small letter 'a' (Unicode code point U+0061).
Comparisons are forced to return either NSOrderedAscending orNSOrderedDescending if the strings are equivalent but not strictly equal.
This option gives stability when sorting. For example, “aaa” is greater than "AAA” if NSCaseInsensitiveSearch is specified.
The search string is treated as an ICU-compatible regular expression. If set, no other options can apply except NSCaseInsensitiveSearch and NSAnchoredSearch. You can use this option only with the rangeOfString:...methods and stringByReplacingOccurrencesOfString:withString:options:range:.
Discussion of [NSString NSAnchoredSearch]
See “Searching, Comparing, and Sorting Strings” for details on the effects of these options.

Example of [NSString NSAnchoredSearch]

NSString *searchString = @"age";

NSString *beginsTest = @"Agencies";
NSRange prefixRange = [beginsTest rangeOfString:searchString
    options:(NSAnchoredSearch | NSCaseInsensitiveSearch)];

// prefixRange = {0, 3}

Example of [NSString NSAnchoredSearch]
NSString *newString = [myString stringByReplacingOccurrencesOfString:@"http://"
                                                             options:NSAnchoredSearch // beginning of string
                                                               range:NSMakeRange(0, [myString length])]
Example of [NSString NSAnchoredSearch]
- (void)search {

    NSString *searchText = [searchBar.text lowercaseString];

    for (int index = 0; index < [availableCollectionArray count]; index++) {

        NSArray *tempArray = [availableCollectionArray objectAtIndex:index];

        for (int tempIndex = 0; tempIndex < [tempArray count] ; tempIndex++) {

            NSString *sortedString = [tempArray objectAtIndex:tempIndex];

            NSRange searchRange = [sortedString rangeOfString:searchText options:NSAnchoredSearch];

            if (searchRange.length > 0)
                [sortedArray addObject: sortedString];  //add the string which starts from searchBar.text