SORU
16 EKİM 2014, PERŞEMBE


NSString containsString çöküyor

Bir dizi filtre dizesi alanlardan birine göre çalışıyorum.

Hem nameLower ve filterLower içinde değeri NSString ve hala almaya devam ediyorum:

__NSCFString containsString:]: unrecognized selector sent to instance 0x7f876b79e160

-(void) filterFriendsArray:(NSString*)filter {
    [_filteredFriendsArray removeAllObjects];
    for (FacebookUser* user in _friendsArray)
    {
        NSString* nameLower = [user.user.name lowercaseString];
        NSString* filterLower = [filter lowercaseString];
        if ([nameLower containsString:filterLower])
            [_filteredFriendsArray addObject:user];
    }
    _displayedFriendsArray = _filteredFriendsArray;
}

CEVAP
17 EKİM 2014, Cuma


Eğer kodunuzu yanı sıra iOS 8 iOS 7 üzerinde çalışmak istiyorsanız rangeOfString görüşmelerden birini kullanmalısınız. Temelde ise Aralık döndürülen sıfır uzunlukta dize yok.

/* These methods return length==0 if the target string is not found. So, to check for containment: ([str rangeOfString:@"target"].length > 0).  Note that the length of the range returned by these methods might be different than the length of the target string, due composed characters and such.
*/
- (NSRange)rangeOfString:(NSString *)aString;
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask;
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)searchRange;
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)searchRange locale:(NSLocale *)locale NS_AVAILABLE(10_5, 2_0);

Belli ki önemsiz bir kategori rangeOfString kullanarak kendinizi containsString uygulamak için:

@implementation NSString (Contains)

- (BOOL)myContainsString:(NSString*)other {
  NSRange range = [self rangeOfString:other];
  return range.length != 0;
}

@end

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 3dmmfavs

    3dmmfavs

    29 Kasım 2009
  • Blunty

    Blunty

    13 Mart 2006
  • LiveForGodsKingdom

    LiveForGodsK

    6 NİSAN 2008