When converting a project to use ARC what does \"switch case is in protected scope\" mean? I am converting a project to use ARC, using Xcode 4 Edit -> Refactor -> Convert to
For me, the problem started on the middle of a switch and curly brackets did not worked out, unless you have to include {} IN ALL previous case statements. For me the error came when I had the statement
NSDate *start = [NSDate date];
in the previous case. After I deleted this, then all subsequent case statement came clean from the protected scope error message
Surround each case itself with braces {}
. That should fix the issue (it did for me in one of my projects).
Hard to be sure without looking at the code, but it probably means there's some variable declaration going on inside the switch and the compiler can't tell if there's a clear path to the required dealloc point.
There are 2 easy ways to solve this issue:
The compiler can not calculate the code line when the variables are to be released. Causing this error.
Surround with braces {}
the code between the case statement and the break in each case.
It worked on my code.
Declare the variables outside the switch, then instantiate them inside the case. That worked perfectly for me using Xcode 6.2