How will I be able to remove [NSNull Null] objects from NSMutableArray?

后端 未结 5 662
南笙
南笙 2020-11-30 12:22

I need to remove Null object added by

 [mutArrSkills addObject:[NSNull null]];

Do I need to iterate? Is there any function to remove all nu

相关标签:
5条回答
  • 2020-11-30 13:04

    You can try doing this,

    NSNull *nullValue = [NSNull null]; 
    
    [mutArrSkills removeObjectIdenticalTo:nullValue];
    

    I hope this helps.

    0 讨论(0)
  • 2020-11-30 13:06

    You can use NSMutableArray's removeObjectIdenticalTo: method, as follows

    [mutArrSkills removeObjectIdenticalTo:[NSNull null]];
    

    to remove the null values. No need to iterate.

    0 讨论(0)
  • 2020-11-30 13:15

    removeObjectIdenticalTo:

    Removes all occurrences of a given object in the array.

    Discussion This method uses the indexOfObjectIdenticalTo: method to locate matches and then removes them by using removeObjectAtIndex:. Thus, matches are determined using object addresses. If the array does not contain anObject, the method has no effect (although it does incur the overhead of searching the contents).

    0 讨论(0)
  • 2020-11-30 13:16

    In Swift you first have to cast your Swift Array to NSArray, make and make it mutable so you can remove the Objective-C leftover elements, then cast it back to Array.

    Fatal error: NSArray element failed to match the Swift Array Element type
    
    // my crashing array, containing a not String element, like NSNull or anything else
    let myUnsafeSwiftArray: [String]
    
    // make it safely NSArray, then make it mutable
    let mutableUnsafeArray = NSMutableArray(array: myUnsafeSwiftArray as NSArray)
    
    // remove leftover class, like [NSNull null] aka NSNull.init()
    unsafeTextures.removeObject(identicalTo: NSNull.init())
    
    // Cast the safe array back to its supposed to by element type
    let safeArray = unsafeTextures as? [String]
    
    0 讨论(0)
  • 2020-11-30 13:16

    You may iterate like this.

    for(int i=0,i<[mutArrSkills count]; i++)
    {
      if([[mutArrSkills objectAtIndex:i] isKindOfClass:[NSNull Class]])
        {
        [mutArrSkills removeObjectAtIndex:i];  
       }
    }
    
    0 讨论(0)
提交回复
热议问题