iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   NSRange en NSStringCompareOptions Vraag (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/35392-nsrange-nsstringcompareoptions-vraag.html)

markvwijnen 12-06-09 01:41

NSRange en NSStringCompareOptions Vraag
 
NSRange

Probleemstelling:
Stel ik maak een NSRange aan met NSRange aRange dan is deze nog niks met gevuld.

(A)Is er een directe manier om een range te fullen net als CGRectMake of moet dat echt met aRange.location en aRange.length?

Stel ik geef een niet gedefinieerde range door aan een methode. NSRange aRange; [self myMethod:aRange];

(B)Hoe kan ik controleren dat er geen location en of length is gedefinieerd?

NSStringCompareOptions

Is er een makkelijke manier om te controleren in een methode of er voor een bepaalde compare option gekozen is. Ik heb nu een eigen gemaakte methode geschreven maar dat moet makkelijker kunnen volgens mij.

Code:

- (BOOL)hasCompareOption:(NSInteger)compareOption inCompareOptions:(NSStringCompareOptions)compareOptions {
    if (compareOption < 0) return NO;
   
    NSInteger currentCompareOption = NSForcedOrderingSearch;
   
    while (currentCompareOption != 0) {
        if ((compareOptions - currentCompareOption) == compareOption) {
            return YES;
        }

        currentCompareOption = currentCompareOption / 2;
    }
   
    return NO;
}


Whacko 12-06-09 10:25

Voor je NSRange kan je NSRangeFromString gebruiken, die scant de string voor twee getallen welke ie dan gebruikt als location en length.

Hoe je weet of ie met niks gevuld is? NSRange is een struct, en geen class, dus je moet zelf je objecten altijd initialiseren. Zet er bijvoorbeeld -1 in de waarden, dan kan je daarop checken of ie 'leeg' is.

Je compare vraag weet ik geen antwoord op.

markvwijnen 12-06-09 11:35

Ja dacht ik al dat doe ik nu ook met aRange.location = NSNotFound.

Bedankt voor je hulp in ieder geval.


Alle tijden zijn GMT +2. Het is nu 11:30.