2012-03-31 91 views
1

我一直在這裏呆了一整天,現在我正在這裏拉我的頭髮。我試圖在我自己的應用程序中實現RedLaser示例,但MonoDevelop/MonoTouch不會生成正確的代碼。它必須是我在Interface Builder中做的(不)。好的,在這裏。MonoDevelop什麼時候生成Connect語法

在樣品中的「RLSampleViewController.xib.designer.cs生成以下:

namespace RedLaserSample { 


    // Base type probably should be MonoTouch.UIKit.UIViewController or subclass 
    [MonoTouch.Foundation.Register("RLSampleViewController")] 
    public partial class RLSampleViewController { 

     private OverlayController __mt_overlayController; 
    .... 

     [MonoTouch.Foundation.Connect("overlayController")] 
     private OverlayController overlayController { 
      get { 
       this.__mt_overlayController = ((OverlayController)(this.GetNativeField("overlayController"))); 
       return this.__mt_overlayController; 
      } 
      set { 
       this.__mt_overlayController = value; 
       this.SetNativeField("overlayController", value); 
      } 
     } 

在我的代碼生成以下:

namespace Winkel 
{ 
    [Register ("ScanArtikelController")] 
    partial class ScanArtikelController 
    { 
     [Outlet] 
     Winkel.OverlayController overlayController { get; set; } 

所以 '連接' 的語法沒有生成,我不知道如何在Interface Builder中正確定義它。

我注意到的其他東西。在我的代碼中必須有一個不同的生成器處於活動狀態。這是舉例的RedLaser產生什麼:

// ------------------------------------------------------------------------------ 
// <autogenerated> 
//  This code was generated by a tool. 
//  Mono Runtime Version: 4.0.30319.1 
// 
//  Changes to this file may cause incorrect behavior and will be lost if 
//  the code is regenerated. 
// </autogenerated> 
// ------------------------------------------------------------------------------ 

和我的代碼生成此評論:

// WARNING 
// 
// This file has been generated automatically by MonoDevelop to store outlets and 
// actions made in the Xcode designer. If it is removed, they will be lost. 
// Manual changes to this file may not be handled correctly. 
// 

回答

1

在我看來,你有示例代碼已經過時。這是以前版本的MonoDevelop(< = 2.6)在Interface Builder是獨立應用程序時會生成的。

既然Interface Builder已經集成到Xcode中,您的代碼就是MonoDevelop(> = 2.8)生成的代碼。

關於功能,這兩個代碼片段都是相同的,這意味着它們都將創建一個屬性,該屬性將反映在類型爲OverlayController的界面設計器中的連接插座。