class Xcodeproj::Project::ObjectList


@todo Cover all the array methods.
usually are implemented in C
Moreover it is a moving target because the methods of array
the array methods should be covered, but this is not done yet.
which are overridden to inform objects reference count. Ideally all
@note Concerning the mutations methods it is safe to call only those
with reference count on modifications.
the project is not serialized with unreachable objects by updating the
It works in conjunction with the {AbstractObject} class to ensure that
This class represents an ordered relationship to many objects.

def +(objects)

def +(objects)
  super
  perform_additions_operations(objects)
end

def <<(object)

def <<(object)
  super
  perform_additions_operations(object)
end

def delete(object)

def delete(object)
  super
  perform_deletion_operations(object)
end

def initialize(attribute, owner)


synthesized methods generated by {AbstractObject.has_many}.
{ObjectList}, it is always initialized empty and automatically by the
{Xcodeproj} clients are not expected to create instances of
def initialize(attribute, owner)
  @attribute = attribute
  @owner = owner
end

def perform_additions_operations(objects)

Returns:
  • (void) -
def perform_additions_operations(objects)
  objects = [objects] unless objects.is_a?(Array)
  objects.each do |obj|
    obj.add_referrer(owner)
    attribute.validate_value(obj)
  end
end

def perform_deletion_operations(objects)

Returns:
  • (void) -
def perform_deletion_operations(objects)
  objects = [objects] unless objects.is_a?(Array)
  objects.each do |obj|
    obj.remove_referrer(owner)
  end
end

def uuids

Returns:
  • (Array) - The UUIDs of all the objects referenced by this
def uuids
  map { |obj| obj.uuid }
end