It's not very nice, but I have found a work around that fixes these problems, at least in my tests. I am replacing the IOS specific code with a macro, and having the macro expand to be the IOS specific code. So, taking a simple example, this code:
void testIOSOne()
{
#ifdef __IOS__
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
}
#endif
}
that is confusing VA, becomes instead:
#define IOS_MULTILINE_CODE [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ }
void testIOSOne()
{
#ifdef __IOS__
IOS_MULTILINE_CODE
#endif
}