diff options
author | Mike Krüger <mkrueger@xamarin.com> | 2011-08-22 12:43:36 +0400 |
---|---|---|
committer | Mike Krüger <mkrueger@xamarin.com> | 2011-08-22 12:43:56 +0400 |
commit | cfdb23292d7c1958703e9590cb639eb3bd26e142 (patch) | |
tree | fe3792d5e3998cda2cbdad0fcc44e9ebed9821a2 /main/src | |
parent | 939f7206e5571b2279f2cb82536f1c63858ce251 (diff) |
Added some error handling in case of unknown outlet types (Bug 337 -
MonoDevelop 2.8a1 its not synching correctly with Xcode 4 xibs).
Diffstat (limited to 'main/src')
-rw-r--r-- | main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs b/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs index 0c8bfd18e8..ec891fdd03 100644 --- a/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs +++ b/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs @@ -31,6 +31,9 @@ using System.Text.RegularExpressions; using MonoDevelop.Projects; using MonoDevelop.Projects.Dom; using MonoDevelop.Projects.Dom.Parser; +using MonoDevelop.Core; +using MonoDevelop.Ide; +using System.Text; namespace MonoDevelop.MacDev.ObjCIntegration { public class NSObjectProjectInfo @@ -127,6 +130,20 @@ namespace MonoDevelop.MacDev.ObjCIntegration if (rDom != null && rDom.objcTypes.TryGetValue (objcType, out resolved)) return true; } + var msg = new StringBuilder ("Can't resolve "+ objcType + Environment.NewLine); + foreach (var r in dom.References) { + msg.Append ("Referenced dom:"); + msg.Append (r); + var rDom = infoService.GetProjectInfo (r); + if (rDom == null) { + msg.AppendLine ("projectinfo == null"); + continue; + } + msg.Append ("known types:"); + msg.AppendLine (string.Join (",", rDom.objcTypes.Keys.ToArray())); + } + LoggingService.LogWarning (msg.ToString ()); + resolved = null; return false; } @@ -175,8 +192,13 @@ namespace MonoDevelop.MacDev.ObjCIntegration } } if (outlet.CliType == null) { - if (TryResolveObjcToCli (outlet.ObjCType, out resolved)) + if (TryResolveObjcToCli (outlet.ObjCType, out resolved)) { outlet.CliType = resolved.CliName; + } else { + MessageService.ShowError (GettextCatalog.GetString ("Error while syncing object c type."), + string.Format (GettextCatalog.GetString ("Type '{0}' can't be resolved to a valid cli type."), outlet.ObjCType)); + outlet.CliType = outlet.ObjCType; + } } } |