You should use <NSMutableCopying> when you have to similar classes, the only difference is that one is mutable and the other imutable.In this case the object the copy method creates is mutable, but since there is only one type of rectangle class you should just use <NSCopying> to avoid confusion