objectWithFile:
is not a method of the "alloc, copy, init, mutableCopy, and new family"
and therefore is
a "Unretained return values" method in the sense of the "Clang/ARC documentation":
A method or function which returns a retainable object type but does not return a retained value must ensure that the object is still valid across the return boundary.
...
In the worst case, this may involve an autorelease, but callers must not assume that the value is actually in the autorelease pool.
So no matter what you do inside the method, the caller does not have to release the returned object.
Therefore I don't think that you have a memory leak in your code.