def sim_list_compare(other)
      return os_name.to_s <=> other.os_name.to_s unless os_name == other.os_name
      return other.os_version <=> os_version unless os_version == other.os_version
      device1, model1 = device_and_model
      device2, model2 = other.device_and_model
      return device_compare(device1, device2) unless device1 == device2
      return model1 <=> model2 unless model1.nil? || model2.nil?
      model2.nil? ? 1 : -1
    end
def sim_list_compare(other)
      return os_name.to_s <=> other.os_name.to_s unless os_name == other.os_name
      return other.os_version <=> os_version unless os_version == other.os_version
      device1, model1 = device_and_model
      device2, model2 = other.device_and_model
      return device_compare(device1, device2) unless device1 == device2
      return model1 <=> model2 unless model1.nil? || model2.nil?
      model2.nil? ? 1 : -1
    end
Compare function for sorting simulators in order by
 - OS Name: ascending
 - OS Version: descending
 - Device type: iPhone first, then ascending
 - Model: ascending