The first lines combine the declaration and initialization of the variables. The compiler displays the type of the correct expression from the type of the left expression and distributes the numbers in the structure slots as expected.
However, the last lines are not initializations. Now the compiler will do nothing. As a result, the compiler does not know how it should interpret the material on the right. What is its type, how to place these numbers in memory? The compiler will not accept CGrect or CGPoint, and you should help it with an explicit cast (CGRect) {0,5,50,50}, which gives it the missing information.
source share