2012-03-12 10 views
6

घटनाओं मैं 'rangeOfString हमेशा मैच की पहली घटना लौटने के लिए, जैसा कि आप जानते निम्नलिखितAttributeString के बारे में - बनाने के लिए कई बोल्ड

[attrStr setFont:[UIFont ...] range:[attrStr.string rangeOfString:@"hello world"]]; 

की तरह बोल्ड कुछ का उपयोग कर एक जिम्मेदार ठहराया स्ट्रिंग में अनेक गतिविधियां बनाने की कोशिश कर रहा हूँ। .. मैं अभी भी आईओएस के लिए काफी नया हूं, बस सोच रहा हूं कि सभी घटनाओं को बोल्ड करने के लिए सबसे अच्छा तरीका क्या है ... क्या एनएसएसटींग या कुछ में कोई फ़ंक्शन प्रदान किया गया है?

अग्रिम धन्यवाद!

+0

परिणाम के रूप में मूल पोस्टर से कोई प्रतिक्रिया नहीं। – wuf810

उत्तर

22

आपको सबसे पहले स्ट्रिंग में सभी श्रेणियां प्राप्त करने का प्रयास करना चाहिए और फिर प्रत्येक श्रेणी के लिए विशेषता सेट करें। कुछ महान कोड उदाहरण stackoverflow पर यहीं होते हैं: https://stackoverflow.com/a/4653266/381870

संपादित करें:

यहाँ के लिए एक उदाहरण है आप

- (NSArray *)rangesOfString:(NSString *)searchString inString:(NSString *)str { 
    NSMutableArray *results = [NSMutableArray array]; 
    NSRange searchRange = NSMakeRange(0, [str length]); 
    NSRange range; 
    while ((range = [str rangeOfString:searchString options:0 range:searchRange]).location != NSNotFound) { 
     [results addObject:[NSValue valueWithRange:range]]; 
     searchRange = NSMakeRange(NSMaxRange(range), [str length] - NSMaxRange(range)); 
    } 
    return results; 
} 

उपयोग:

NSArray *results = [self rangesOfString:@"foo" inString:@"foo bar foo"]; 
NSLog(@"%@", results); 

आप

(
    "NSRange: {0, 3}", 
    "NSRange: {8, 3}" 
) 
देता है
+0

धन्यवाद। सुपर कमाल कोड (वाई) – ishhhh

+0

शानदार जवाब .. मेरा दिन बचाएं –

0

आपको टेक्स्ट को स्कैन करने और उसे बदलने के लिए एनएसएसकेनर का उपयोग करना होगा। आप एनएसएसकेनर here के लिए एक उदाहरण पा सकते हैं।

+0

धन्यवाद @ जानकारी के लिए विग्नेश। मैं इस विकल्प पर एक नज़र डालेगा ... मैंने उपर्युक्त समाधान चुना क्योंकि यह मेरे वर्तमान कोडबेस के साथ थोड़े संगत है। :) – Koolala

संबंधित मुद्दे