Bug 19618 - error MT4109: Failed to compile the generated registrar code.
Summary: error MT4109: Failed to compile the generated registrar code.
Status: RESOLVED NOT_ON_ROADMAP
Alias: None
Product: iOS
Classification: Xamarin
Component: Pre-release ()
Version: 7.2.2
Hardware: Macintosh Other
: --- normal
Target Milestone: Untriaged
Assignee: Bugzilla
URL:
: 22359 23403 26320 ()
Depends on:
Blocks:
 
Reported: 2014-05-08 14:30 UTC by dj_technohead
Modified: 2015-01-23 08:59 UTC (History)
7 users (show)

Tags:
Is this bug a regression?: ---
Last known good build:

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:
Status:
RESOLVED NOT_ON_ROADMAP

Description dj_technohead 2014-05-08 14:30:28 UTC
Since the update to MT 7.2.1, I've not been able to compile to the physical device without having to specify the mtouch args --registrar:legacy.

=== Xamarin Studio ===

Version 4.2.5 (build 0)
Installation UUID: bfa92f08-b54c-43ca-baac-4c06dda9ee77
Runtime:
	Mono 3.2.6 ((no/9b58377)
	GTK+ 2.24.23 (Raleigh theme)

	Package version: 302060000

=== Xamarin.Android ===

Version: 4.12.3 (Business Edition)
Android SDK: /Users/dj_technohead/Library/Developer/Xamarin/android-sdk-mac_x86
	Supported Android versions:
		1.6   (API level 4)
		2.1   (API level 7)
		2.2   (API level 8)
		2.3   (API level 10)
		3.1   (API level 12)
		4.0   (API level 14)
		4.0.3 (API level 15)
		4.1   (API level 16)
		4.2   (API level 17)
		4.3   (API level 18)
		4.4   (API level 19)
Java SDK: /usr
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

=== Apple Developer Tools ===

Xcode 5.1.1 (5085)
Build 5B1008

=== Xamarin.iOS ===

Version: 7.2.2.2 (Business Edition)
Hash: db4427f
Branch: 
Build date: 2014-04-22 12:49:14-0400

=== Xamarin.Mac ===

Xamarin.Mac: Not Installed

=== Build Information ===

Release ID: 402050000
Git revision: 95ac543f224a70960a9ab71e24ce341eb87de06f
Build date: 2014-05-02 13:05:15-04
Xamarin addins: b81285ac0156281956135adb96685f98922893a1

=== Operating System ===

Mac OS X 10.9.2
Darwin denniss-air-3 13.1.0 Darwin Kernel Version 13.1.0
    Wed Apr  2 23:52:02 PDT 2014
    root:xnu-2422.92.1~2/RELEASE_X86_64 x86_64



Compiling to native code
/Developer/MonoTouch/usr/bin/mtouch -sdkroot "/Applications/Xcode.app/Contents/Developer" --cache "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Release/mtouch-cache" --nomanifest --nosign -dev "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/bin/iPhone/Release/MediscriptsTouch.app" -r "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Mediscripts.Shared/bin/Release/Mediscripts.Shared.dll" -r "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Mediscripts.Engine/bin/Release/Mediscripts.Engine.Models.dll" -r "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Framework/monocross/MonoCross.Touch/bin/iPhone/Release/MonoCross.Touch.dll" -r "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Framework/monocross/MonoCross.Navigation/bin/iPhone/Release/MonoCross.Navigation.MT.dll" -r "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Framework/json.net/bin/Release/Newtonsoft.Json.dll" -r "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Framework/mixpanel/bin/Release/MixpanelAPI.dll" -r "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Framework/monotouch.dialog/MonoTouch.Dialog/bin/iPhone/Release/MonoTouch.Dialog.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/System.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/System.Xml.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/System.Core.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/System.Web.Services.dll" -r "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Components/btprogresshud-1.5/lib/ios/BTProgressHUD.dll" -sdk "7.1" -targetver "6.0" --abi=armv7 "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/bin/iPhone/Release/MediscriptsTouch.exe"
Xamarin.iOS 7.2.2 Business Edition using framework: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk
Process exited with code 1, command:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang  -gdwarf-2 -arch armv7 -std=c99 -I/Developer/MonoTouch/SDKs/MonoTouch.iphoneos.sdk/usr/include -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk -Qunused-arguments -miphoneos-version-min=6.0 -c -o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Release/mtouch-cache/registrar.armv7.o -Wno-receiver-forward-class -x objective-c /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Release/mtouch-cache/registrar.m
/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Release/mtouch-cache/registrar.m:4278:12: error: redefinition of 'UIApplicationMain' as different kind of symbol
@interface UIApplicationMain : UIApplication {
           ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h:423:18: note: previous definition is here
UIKIT_EXTERN int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName);
                 ^
/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Release/mtouch-cache/registrar.m:4288:17: warning: cannot find interface declaration for 'UIApplicationMain'
@implementation UIApplicationMain { } 
                ^
/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Release/mtouch-cache/registrar.m:4303:4: error: 'UIApplicationMain' cannot use 'super' because it is a root class
                [super dealloc];
                 ^
/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Release/mtouch-cache/registrar.m:4288:17: warning: class 'UIApplicationMain' defined without specifying a base class [-Wobjc-root-class]
@implementation UIApplicationMain { } 
                ^
/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Release/mtouch-cache/registrar.m:4288:34: note: add a super class to fix this problem
@implementation UIApplicationMain { } 
                                 ^
                                  : NSObject 
/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Release/mtouch-cache/registrar.m:8279:39: error: reference to 'UIApplicationMain' is ambiguous
        __monotouch_class_map [72].handle = [UIApplicationMain class];
                                             ^
/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Release/mtouch-cache/registrar.m:4288:17: note: candidate found by name lookup is 'UIApplicationMain'
@implementation UIApplicationMain { } 
                ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h:423:18: note: candidate found by name lookup is 'UIApplicationMain'
UIKIT_EXTERN int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName);
                 ^
2 warnings and 3 errors generated.

error MT4109: Failed to compile the generated registrar code. Please file a bug report at http://bugzilla.xamarin.com

---------------------- Done ----------------------

Build: 1 error, 144 warnings
Comment 1 dj_technohead 2014-05-08 14:32:08 UTC
Here is the source for UIApplicationMain which seems to be the root cause of the problems:

using System;
using MonoTouch.UIKit;
using MonoTouch.Foundation;
using System.Timers;
using Mediscripts.Shared;

namespace Mediscripts.Touch
{
	[Register ("UIApplicationMain")]
	public class UIApplicationMain : UIApplication
	{

		public UIApplicationMain () : base()
		{

		}


		void handleElapsed (object sender, ElapsedEventArgs e)
		{
			//AppGlobal.Instance.UserKey = string.Empty;
		}

		public override void SendEvent (UIEvent uievent)
		{
			base.SendEvent (uievent);

			NSSet allTouches = uievent.AllTouches;
			if (allTouches != null && allTouches.Count > 0)
			{
				UITouchPhase phase = ((UITouch)allTouches.AnyObject).Phase;
				if (phase == UITouchPhase.Began || phase == UITouchPhase.Ended)
				{
					if (AppGlobal.Profile != null)
						AppGlobal.Profile.AutoLock.ResetAutolockTimer();
				}
			}

		}
	}
}
Comment 2 Sebastien Pouliot 2014-05-08 14:51:41 UTC
`UIApplicationMain` is the name of a function in Apple libraries (UIKit). That creates a conflict when the (new) registrar tries to compile it.

Workaround: Registeringthe type with a different name should solve it. e.g.

    [Register ("UIApplicationMain2")]
Comment 3 dj_technohead 2014-05-08 16:22:22 UTC
Hi Sebastien,
  thanks for responding. I changed that, and changed the call to UIApplication.Main (args, "UIApplicationMain2", "AppDelegate") that references it, and that appears to fix that problem. However, I'm now seeing a different set of errors:


/Developer/MonoTouch/usr/bin/mtouch -sdkroot "/Applications/Xcode.app/Contents/Developer" --cache "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache" --nomanifest --nosign -dev "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/bin/iPhone/Debug/MediscriptsTouch.app" -r "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Mediscripts.Shared/bin/Debug/Mediscripts.Shared.dll" -r "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Mediscripts.Engine/bin/Debug/Mediscripts.Engine.Models.dll" -r "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Framework/monocross/MonoCross.Touch/bin/iPhone/Debug/MonoCross.Touch.dll" -r "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Framework/monocross/MonoCross.Navigation/bin/iPhone/Debug/MonoCross.Navigation.MT.dll" -r "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Framework/json.net/bin/Debug/Newtonsoft.Json.dll" -r "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Framework/mixpanel/bin/Debug/MixpanelAPI.dll" -r "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Framework/monotouch.dialog/MonoTouch.Dialog/bin/iPhone/Debug/MonoTouch.Dialog.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/System.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/System.Xml.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/System.Core.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/System.Web.Services.dll" -r "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Components/btprogresshud-1.5/lib/ios/BTProgressHUD.dll" -debug -profiling -nolink -sdk "7.1" -targetver "6.0" --sgen --abi=armv7 "/Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/bin/iPhone/Debug/MediscriptsTouch.exe"
Xamarin.iOS 7.2.2 Business Edition using framework: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk
Process exited with code 1, command:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang  -Wl,-pie  -miphoneos-version-min=6.0 -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk  /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/MediscriptsTouch.exe.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/mscorlib.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/MonoCross.Touch.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/monotouch.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/System.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/System.Core.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/Mono.Dynamic.Interpreter.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/System.Xml.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/MonoCross.Navigation.MT.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/MonoTouch.Dialog.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/System.Json.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/Mediscripts.Engine.Models.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/Newtonsoft.Json.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/System.Runtime.Serialization.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/Mediscripts.Shared.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/System.Net.Http.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/System.Web.Services.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/MixpanelAPI.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/BTProgressHUD.dll.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/registrar.armv7.o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/main.armv7.o -force_load /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/obj/iPhone/Debug/mtouch-cache/libMixpanel.a -o /Users/dj_technohead/Projects/HighSeas/Mediscripts/Mobile/Touch/Mediscripts.Touch/bin/iPhone/Debug/MediscriptsTouch.app/MediscriptsTouch -framework CFNetwork -framework AVFoundation -framework Accelerate -framework AddressBook -framework AudioToolbox -framework QuartzCore -framework CoreBluetooth -framework CoreData -framework CoreGraphics -framework CoreImage -framework CoreLocation -framework CoreText -framework Foundation -framework GameKit -framework ImageIO -framework MobileCoreServices -framework Security -framework StoreKit -framework SystemConfiguration -framework CoreMedia -framework CoreMIDI -framework CoreVideo -framework AssetsLibrary -framework Accounts -framework CoreTelephony -framework EventKit -framework EventKitUI -framework CoreMotion -framework GLKit -framework iAd -framework MapKit -framework MediaPlayer -framework MessageUI -framework NewsstandKit -framework OpenGLES -framework Social -framework Twitter -framework UIKit -framework PassKit -framework AddressBookUI -framework ExternalAccessory -framework QuickLook -framework Foundation, -framework CoreTelephony, -framework UIKit, -weak_framework SpriteKit -weak_framework JavaScriptCore -weak_framework MultipeerConnectivity -weak_framework GameController -weak_framework MediaAccessibility -weak_framework SafariServices -weak_framework AdSupport -lz -liconv -u _mono_pmip -u _monotouch_timezone_get_names -u _monotouch_timezone_get_data -u _monotouch_get_locale_country_code -u _monotouch_log -u _xamarin_init_nsthread -u _monotouch_release_managed_ref -u _monotouch_create_managed_ref -u _xamarin_get_block_descriptor -u _monotouch_start_wwan -u _monotouch_IntPtr_objc_msgSend_IntPtr -u _monotouch_IntPtr_objc_msgSendSuper_IntPtr -u _CreateZStream -u _CloseZStream -u _Flush -u _ReadZStream -u _WriteZStream /Developer/MonoTouch/SDKs/MonoTouch.iphoneos.sdk/usr/lib/libmonosgen-2.0.a /Developer/MonoTouch/SDKs/MonoTouch.iphoneos.sdk/usr/lib/libmonotouch-sgen-debug.a /Developer/MonoTouch/SDKs/MonoTouch.iphoneos.sdk/usr/lib/libmono-profiler-log.a -u _mono_profiler_startup_log
Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_MPCJSONDataSerializer", referenced from:
      objc-class-ref in registrar.armv7.o
  "_OBJC_CLASS_$_MPCJSONSerializer", referenced from:
      objc-class-ref in registrar.armv7.o
  "_OBJC_CLASS_$_MPCSerializedJSONData", referenced from:
      objc-class-ref in registrar.armv7.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

error MT5211: Native linking failed, undefined Objective-C class: _OBJC_CLASS_$_MPCJSONDataSerializer. If '_OBJC_CLASS_$_MPCJSONDataSerializer' is a protocol from a third-party binding, please check that it has the [Protocol] attribute in its api definition file, otherwise verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
error MT5211: Native linking failed, undefined Objective-C class: _OBJC_CLASS_$_MPCJSONSerializer. If '_OBJC_CLASS_$_MPCJSONSerializer' is a protocol from a third-party binding, please check that it has the [Protocol] attribute in its api definition file, otherwise verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
error MT5211: Native linking failed, undefined Objective-C class: _OBJC_CLASS_$_MPCSerializedJSONData. If '_OBJC_CLASS_$_MPCSerializedJSONData' is a protocol from a third-party binding, please check that it has the [Protocol] attribute in its api definition file, otherwise verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
error MT5202: Native linking failed. Please review the build log.

---------------------- Done ----------------------

Build: 4 errors, 17 warnings
Comment 4 Sebastien Pouliot 2014-05-08 16:36:01 UTC
The MT5211 error message tells you that some types, MPCJSON*, are not bound correctly.

Those types are not from monotouch.dll so they are (likely) coming from your own (or a 3rd party) bindings from `libMixpanel.a`

The new registrars requires bindings to be more precise (e.g. specify if they represent a protocol) in order to work correctly (and avoid runtime issues). 

That means you might need to update some binding libraries (like the one above) to be able to get all the benefits from the new registrars. This is generally simple and you can find documentation links from the release notes [1].

[1] http://docs.xamarin.com/releases/ios/xamarin.ios_7/xamarin.ios_7.2/#1
Comment 5 dj_technohead 2014-05-08 17:14:51 UTC
Ok thanks Sebastien.
Comment 6 Sebastien Pouliot 2014-05-18 13:28:18 UTC
There is not great way to solve this. Namespaces does not really exists in ObjC. This is why people uses prefixes, e.g. two chars all CAPS prefixes, on their types. 

In this case you're using an Apple prefix (UI*) _and_ a type name that exists as a function (in an header file we can't remove). You would have ended with the same error in ObjC.
Comment 7 Sebastien Pouliot 2014-08-26 08:32:09 UTC
*** Bug 22359 has been marked as a duplicate of this bug. ***
Comment 8 Sebastien Pouliot 2014-09-26 08:31:58 UTC
*** Bug 23403 has been marked as a duplicate of this bug. ***
Comment 9 Akhilesh kumar 2015-01-23 03:53:00 UTC
*** Bug 26320 has been marked as a duplicate of this bug. ***