The documentation states for CTCarrier's carrierName "The value does not change if the user is roaming; it always represents the provider with whom the user has an account."
It does not say the same about mobileNetworkCode however. Does this change based on the current carrier or does it remain constant too?
I am trying find if the phone is roaming in a startMonitoringSignificantLocationChanges callback so would like to avoid geolocating.
I'm roaming right now - in Switzerland on an AT&T iPhone 4 on Swisscom. Just wrote a quick program to test. Here's what I got:
2011-04-29 09:01:55.657 test[2094:707] Carrier Name: AT&T
2011-04-29 09:01:55.665 test[2094:707] ISO Country Code: us
2011-04-29 09:01:55.669 test[2094:707] Mobile Country Code: 310
2011-04-29 09:01:55.678 test[2094:707] Mobile Network Code: 410
So, to answer your question, doesn't look like mobile network code changes (410 is AT&T as cited below)