[Mono-bugs] [Bug 610268] New: MonoDevelop doesn't fully qualify names of classes when registering them for use from obj-c selectors

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Mon May 31 03:10:42 EDT 2010



           Summary: MonoDevelop doesn't fully qualify names of classes
                    when registering them for use from obj-c selectors
    Classification: Mono
           Product: MonoTouch
           Version: unspecified
          Platform: Macintosh
        OS/Version: Mac OS X 10.6
            Status: NEW
          Severity: Major
          Priority: P5 - None
         Component: Tools
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: bryancostanich at hotmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: Customer
           Blocker: ---

Description of Problem:
When you create a View Definition with View Controller item, it doesn't fully
qualify the class name in the RegisterAttribute. this means that if you have
different classes with the same name in different namespaces, you'll get
collisions. this can lead to weird ass bugs, and makes universal apps difficult
to code in MonoTouch. for example, let's say you have the following classes:
-> Screens.iPad.Home.HomeScreen
-> Screens.iPhone.Home.HomeScreen

when you load one of those screens, if they're a UIViewController that's
defined in a xib, you don't know which class it'll load because they both have
[Register("HomeScreen")] so you're fucked. plus, because it's in the auto-gen'd
class, you can't even manually change it. you have the give them completely
different names, like HomeScreen_iPad or HomeScreen_iPhone

Steps to reproduce the problem:
1. create a new project, yada, blah blah
2. Set project options to follow the .net folder/namespace scheme, e.g. classes
get namespaced from folders
3. Create a couple of folders: folder1, and folder2
4. Create View Interface Definition with Controller called MyScreen in both
5. Load either Folder1.MyScreen, or Folder2.MyScreen as your main view. 
6. put a breakpoint in the constructor or initilaizer in either class.
7. notice you don't know which one will load.

Actual Results:

Expected Results:

How often does this happen? 
-> everytime

Additional Information:
-> this is going to cause so many weird bugs that customers are going to be
confused about.

Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.

More information about the mono-bugs mailing list