SORU
21 EYLÜL 2008, Pazar


filtreleme objective-c yeni bir NSArray içine NSArray

NSArray Bir ben var ve belirli kriterleri karşılayan orijinal dizideki nesneleri ile NSArray yeni bir oluşturmak istiyorum. Kriterleri BOOL döndüren bir işlev tarafından belirlenir.

Filtre işlevi kabul eden nesneler üzerinde NSMutableArray kaynak yineleme dizi ve bir kopyasını oluşturmak ve sonra da değişmez bir sürümünü oluşturun.

Daha iyi bir yolu var mı?

CEVAP
21 EYLÜL 2008, Pazar


NSArray NSMutableArray yöntemleri dizinin içeriği filtrelemek için sağlar. NSArray sağlarfilteredArrayUsingPredicate:yeni bir dizi belirtilen yüklem eşleşen alıcı nesneleri içeren verir. NSMutableArray eklerfilterUsingPredicate:belirtilen karşılaştırma belirtimi karşı alıcının içerik değerlendirir ve yalnızca eşleşen nesne bırakır. Bu yöntemler aşağıdaki örnekte gösterilmiştir.

NSMutableArray *array =
    [NSMutableArray arrayWithObjects:@"Bill", @"Ben", @"Chris", @"Melissa", nil];

NSPredicate *bPredicate =
    [NSPredicate predicateWithFormat:@"SELF beginswith[c] 'b'"];
NSArray *beginWithB =
    [array filteredArrayUsingPredicate:bPredicate];
// beginWithB contains { @"Bill", @"Ben" }.

NSPredicate *sPredicate =
    [NSPredicate predicateWithFormat:@"SELF contains[c] 's'"];
[array filterUsingPredicate:sPredicate];
// array now contains { @"Chris", @"Melissa" }

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Darren Kitchen

    Darren Kitch

    3 EKİM 2011
  • mahalodotcom

    mahalodotcom

    8 HAZİRAN 2007
  • Matt Davis

    Matt Davis

    4 ŞUBAT 2006