Kapan MonoDevelop menghasilkan sintaks Connect

Saya sudah melakukan ini selama lebih dari satu hari sekarang dan saya mencabut rambut saya di sini. Saya mencoba menerapkan contoh RedLaser ke dalam aplikasi saya sendiri tetapi MonoDevelop/MonoTouch tidak menghasilkan kode yang tepat. Itu pasti sesuatu yang (tidak) saya lakukan di Interface Builder. Oke ini dia.

Dalam contoh di 'RLSampleViewController.xib.designer.cs, berikut ini dihasilkan:

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);
            }
        }

Dalam kode saya, yang berikut ini dihasilkan:

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

Jadi sintaks 'Connect' tidak dibuat dan saya tidak tahu bagaimana mendefinisikannya dengan benar di Interface Builder.

Ada hal lain yang saya perhatikan. Pasti ada generator lain yang aktif di kode saya. Inilah yang dihasilkan untuk contoh 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>
// ------------------------------------------------------------------------------

dan komentar ini dibuat untuk kode saya:

// 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.
//

person Paul Sinnema    schedule 31.03.2012    source sumber


Jawaban (1)


Menurut saya, kode contoh yang Anda miliki sudah usang. Itulah yang akan dihasilkan MonoDevelop versi sebelumnya (‹=2.6) ketika Interface Builder merupakan aplikasi mandiri.

Sekarang Interface Builder terintegrasi ke dalam Xcode, kode Anda adalah apa yang dihasilkan MonoDevelop (>= 2.8).

Mengenai fungsionalitas, kedua cuplikan kode tersebut sama, artinya keduanya akan membuat properti yang akan mencerminkan outlet Anda yang terhubung di perancang antarmuka dengan tipe OverlayController.

person Dimitris Tavlikos    schedule 31.03.2012