3

この配列があり、@"" または何も含まれていない値を削除したいと考えています。配列を値と新しい長さで保持したいと思います。これはどのように可能ですか?

array:{
"24_7" = 1;
"abo_ok" = "";
city = "";
"compte_ok" = "";
country = FR;
"credit_card" = "Mastercard, Visa";
"date_creation" = "2011-11-05 18:01:56";
"debut_abo" = "";
dst = "992.565700179622";
email = "";
"fin_abo" = "";
"h_saturday" = "";
"h_sunday" = "";
"h_week" = "";
handicapped = "Malades assis";
hours = "";
id = 614;
"id_driver" = 614;
"info_compl" = "";
languages = "";
"location_lat" = "48.6823";
"location_long" = "6.17818";
luggage = 0;
luxury = "";
name = "Taxi";
nbvotes = "";
passengers = 4;
query = 8;
score = 9;
"special_trip" = "A\U00e9roport, Colis";
status = 2;
"tel_1" = 0383376537;
"tel_2" = "";
vehicles = "";
votes = "";
}
4

5 に答える 5

10
[myMutableArray removeObject: @""];

の出現箇所をすべて@""配列から 削除します。-removeObject のドキュメントはこちら

また、コメントでほのめかされているように、実際に変更可能な辞書がある場合

NSArray* keysToGo = [myDictionary allKeysForObject: @""];
[myDictionary removeObjectsForKeys: keysToGo];
于 2012-05-30T10:53:38.143 に答える
2

これを試して

NSMutableSet* set = [NSMutableSet setWithArray:array];
[set removeObject:@""];
NSArray *result =[set allObjects];
NSLog(@"%@",result);
于 2012-05-30T10:58:45.940 に答える
0

配列全体をトラバースして、各値の長さを確認できます。値の長さが<= 0の場合は、そのオブジェクトを配列から削除します。

于 2012-05-30T10:46:30.950 に答える
0

次のように、NSMutableArray の removeObjectIdenticalTo: メソッドを使用できます。

[yourMutArray removeObjectIdenticalTo:[NSNull null]];

null 値を削除します。繰り返す必要はありません。

于 2016-06-20T07:34:05.493 に答える
0

配列をループして、長さが 0 の各文字列を削除するだけです。

for(int idx = 0; idx < array.count; idx++) {
    if([[array objectAtIndex:idx] isKindOfClass:[NSString class]]) { //type check
        if(((NSString*)[array objectAtIndex:idx]).length == 0) { //test for string length

            //finally, pull out that string
            [array removeObjectAtIndex:idx]; 

            //because we removed an object, we have to decrement the 
            //counter to avoid skipping the next string
            idx--; 
        }
    }
}
于 2012-05-30T10:42:09.103 に答える