微詞(過濾),微詞過濾

來源:互聯網
上載者:User

微詞(過濾),微詞過濾

個人認為微詞是個很不錯的東西

1.自訂對象

@interface Person : NSObject@property(nonatomic , copy)NSString * name;@property(nonatomic , assign)int age;@property (nonatomic , retain)NSArray * familys;@end

2.簡單實用(資料比較)

- (void)testObject1 {    Person *person = [[Person alloc] init];    person.name = @"gulong";    person.age = 24;   //整形比較    NSPredicate * pred = [NSPredicate predicateWithFormat:@"age > 25"];    BOOL match = [pred evaluateWithObject:person];    NSLog(@"%s",(match)?"YES":"NO");
//printf: NO}

3.萬用字元和正則

- (void)testObject2 {    /*      BEGINSWITH:檢查某個字串是否以另一個字串開頭。     ENDSWITH:檢查某個字串是否以另一個字串結尾。     CONTAINS:檢查某個字串是否以另一個字串內部。     [c]不區分大小寫[d]不區分發音符號即沒有重音符號[cd]既不區分大小寫,又不區分發音符號。     */    Person *person = [[Person alloc] init];    person.name = @"gulong";    person.age = 24;        /* 萬用字元 */    NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"name LIKE[cd] '*er*'"];         //*代表萬用字元Like還接受[cd].    predicate1 = [NSPredicate predicateWithFormat:@"name LIKE[cd] '???er*'"];    //?只匹配一個字元並且還可以接受[cd].    //*表示有多個預留位置    /* 正則匹配 */    NSString *regex = @"[A-Za-z]+";    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];        if ([predicate evaluateWithObject:@"huang"]) {        NSLog(@"字串是否為純字母");    }    //printf 字串是否為純字母
}

4.數組的過濾1(裡面的每個對象都是字串)

- (void)testArray1 {    NSArray *array = [[NSArray alloc]initWithObjects:@"beijing",@"shanghai",@"guangzou",@"wuhan", nil];    NSString *string = @"ang";  //擷取帶有ang的所有字串,然後形成一個數組    NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF CONTAINS %@",string];    NSLog(@"%@",[array filteredArrayUsingPredicate:pred]);    //printf: shanghai,guangzou}

 5.數組的過濾2 (使用自訂的person類)

- (void)testArray2 {    Person *person1 = [[Person alloc] init];    person1.name = @"long";    person1.age = 23;        Person *person2 = [[Person alloc] init];    person2.name = @"gu";    person2.age = 23;        Person *person3 = [[Person alloc] init];    person3.name = @"long";    person3.age = 24;    NSArray *persons = @[person1,person2,person3];    //直接使用對象裡面的屬性就可以了,不能使用數組的某個對象名(其實    NSPredicate *pred = [NSPredicate predicateWithFormat:@"name == 'long'"]; //相等    // (age > 23) AND (age < 26)   AND 兩者都要滿足,OR 兩種滿足其一就可    // age between {23,26}   從23 到26之間    //@"name IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }"; //包含在其中用IN    NSArray *array = [persons filteredArrayUsingPredicate:pred];    NSLog(@"array %@",[array description]);    }

6.數組過濾3(對象裡面還有資料)

@property (nonatomic , retain)NSArray * familys;    //person.h

 

- (void)testArray3 {    Person *person1 = [[Person alloc] init];    person1.name = @"huang";    person1.age = 23;    person1.familys = @[@"zhuge",@"zhangfei",@"liubei"];        Person *person2 = [[Person alloc] init];    person2.name = @"gu";    person2.age = 23;    person2.familys = @[@"suiquan",@"huanggai",@"lusun"];        Person *person3 = [[Person alloc] init];    person3.name = @"huang";    person3.age = 24;    person3.familys = @[@"caochao",@"xiahou",@"caozhi"];        NSArray *persons = @[person1,person2,person3];    /*     * 數組包含時必須為 整個字串,不是是部分(比如 huanggai 的 huang;這樣是無資料的)     */    NSPredicate *pred = [NSPredicate predicateWithFormat:@"familys CONTAINS 'huanggai'"];    NSArray *array = [persons filteredArrayUsingPredicate:pred];    NSLog(@"array %@",[array description]);  //列印 person2}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.