Sommario
Questa è la mia prima app che sto cercando di fare con Xamarin. Sto imparando dall'esempio Hello World, iPhone
. Quando faccio clic sul mio pulsante, l'app si arresta in modo anomalo e non riesco a capire perché.L'app iOS si arresta in modo anomalo quando faccio clic sul mio UIButton - non riesco a capire perché?
dettagli
Ho un semplice UIViewController
con un singolo UIButton
. Ho creato un punto vendita, quindi quando clicco sul pulsante, faccio qualcosa.
Quando collego il pulsante TouchUpInside event
, l'app si arresta in modo anomalo quando faccio clic sul pulsante. Quando rimuovo l'evento cablato (ma la presa esiste ancora), l'app non si arresta quando faccio clic sul pulsante. (Naturalmente, non succede nulla perché non è collegato nulla).
Ciò che mi uccide è che non ho idea di cosa non funzioni e di utilizzare le informazioni di debug, non riesco a capirlo! Ho fatto il codice C# per anni, ma solo iniziare in Xam è un po 'diverso, specialmente quando il rapporto di crash è .. beh .. privo di informazioni :(Immagino che potrei avere alcune impostazioni spuntate (es. senza informazioni di debug?)
Quindi, ecco un po 'di codice ...
AuthenticationViewController
file h
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface AuthenticationViewController : UIViewController {
UIButton *_Google;
}
@property (nonatomic, retain) IBOutlet UIButton *Google;
@end
di file .m
#import "AuthenticationViewController.h"
@implementation AuthenticationViewController
@synthesize Google = _Google;
@end
file di progettazione
using MonoTouch.Foundation;
using System.CodeDom.Compiler;
namespace Foo.Client.iPhone
{
[Register ("AuthenticationViewController")]
partial class AuthenticationViewController
{
[Outlet]
MonoTouch.UIKit.UIButton Google { get; set; }
void ReleaseDesignerOutlets()
{
if (Google != null) {
Google.Dispose();
Google = null;
}
}
}
}
e, infine, il mio file
cs
using System;
using System.Drawing;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
namespace Foo.Client.iPhone
{
public partial class AuthenticationViewController : UIViewController
{
public int xxx = 0;
public event EventHandler OnAuthenticationCompleted;
public AuthenticationViewController()
: base ("AuthenticationViewController", null)
{
}
public override void DidReceiveMemoryWarning()
{
// Releases the view if it doesn't have a superview.
base.DidReceiveMemoryWarning();
// Release any cached data, images, etc that aren't in use.
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
Google.TouchUpInside += (sender, e) =>
{
xxx++;
};
}
}
}
Oh - e il colpo soldi ... la (carente) crash dump/stack trace
2013-10-25 21:37:13.785 FooClientiPhone[8852:1403] MonoTouch: Socket error while connecting to MonoDevelop on 127.0.0.1:10000: Connection refused
mono-rt: Stacktrace:
mono-rt: at <unknown> <0xffffffff>
mono-rt: at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication.UIApplicationMain (int,string[],intptr,intptr) <IL 0x0009f, 0xffffffff>
mono-rt: at MonoTouch.UIKit.UIApplication.Main (string[],string,string) [0x0004c] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:38
mono-rt: at Foo.Client.iPhone.Application.Main (string[]) [0x00008] in /Users/PureKrome/Documents/Mac Projects/Foo iOS Client/Code/Foo.Client.iPhone/Main.cs:16
mono-rt: at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) <IL 0x00050, 0xffffffff>
mono-rt:
Native stacktrace:
mono-rt:
=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
Sono bloccato e non ho idea di come continuare? Ho già passato un certo numero di ore a provare varie cose per farlo funzionare.
Ulteriori informazioni, here's a video showing the error (selezionare la versione 720p).
ed ecco lo solution, zipped up.
Apprezzerei qualsiasi aiuto -> e non dire: eccolo, risolto. ma .. non hai fatto questo e quello .. e hai bisogno di fare quelle cose così xxxx funziona.
Qualche suggerimento, per favore?
L'arresto si verifica quando si esegue l'applicazione senza eseguire il debug? –
Sì. si verifica anche allora. –