SIGABRT

SIGABRT discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Hoi allemaal, Ik zat aan mn app te werken en had een label toegevoegt in interface builder. Toen: Code: // // Home.h // // Created ...



Ga terug   iPhone, iPod touch, iPad en Apple TV forum > Development > Ontwikkelen voor iOS
Wachtwoord vergeten? Registreren!
Registreer FAQ Ledenlijst Kalender Zoeken Berichten van vandaag Markeer forums als gelezen
  #1  
Oud 26-11-10, 16:00
» iPhone 4 16GB (Zwart) [FW: 4.2.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: Aug 2010
Berichten: 84
Standaard SIGABRT

Hoi allemaal,

Ik zat aan mn app te werken en had een label toegevoegt in interface builder.

Toen:

Code:
//
//  Home.h
//
//  Created by x on 25-11-10.
//  Copyright 2010 MNL. All rights reserved.
//

#import <UIKit/UIKit.h>


@interface Home : UIViewController {
	IBOutlet UILabel *ht;
}

@property(nonatomic, retain) IBOutlet UILabel *ht;

-(void)pl;

@end
met de home.m

Code:
#import "Home.h"


@implementation Home

@synthesize ht;

-(void)pl
{
	NSString *hometext = @"een string";
	[ht setText: hometext];
}
Hierna wou ik m op mijn iPhone uittesten, maar kreeg ik het volgende te zien in xcode: GDB: Program received signal: "SIGABRT".

Zelfs nadat ik alle code weer weg gehaald had, bleef ik deze melding houden. De app start niet meer, en ik krijg een zwart scherm.

Wat kan hier de oorzaak van zijn?

Thanks,
Marijn

EDIT: Ik kan hier niks mee, maar wellicht interesant voor jullie :
Code:
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x1391d0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key ht.'

Laatst gewijzigd door bluecola; 26-11-10 om 16:05.
Advertentie
Advertentie Gesponsorde links (verdwijnt na registratie)

  #2  
Oud 26-11-10, 16:12
» iPhone 5 16GB (Wit) [FW: 8.1.2]  [Jailbreak: Nee]
» iPad mini Wi-Fi 16GB (Zwart) [FW: 8.1.2]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: Oct 2008
Locatie: Amsterdam
Berichten: 174
Standaard

In de xib file staat een IBOutlet gedefinieerd die nu niet meer bestaat. namelijk ht.

Die SIGABRT kan nog van alles zijn, ligt vooral aan de regel die er voor staat.
Lees je eens in over debuggen, dan kan je zelf dit soort dingen vaak gouw vinden.
  #3  
Oud 26-11-10, 16:17
» iPhone 4 16GB (Zwart) [FW: 4.2.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: Aug 2010
Berichten: 84
Standaard

Citaat:
Oorspronkelijk geplaatst door TUX2K Bekijk bericht
In de xib file staat een IBOutlet gedefinieerd die nu niet meer bestaat. namelijk ht.

Die SIGABRT kan nog van alles zijn, ligt vooral aan de regel die er voor staat.
Lees je eens in over debuggen, dan kan je zelf dit soort dingen vaak gouw vinden.
waar kan ik de regel vinden die voor SIGABRT staat? In welk venster?
Ik zal IB en de code even opnieuw doen.
Is mijn -(void)pl wel goed uitgeschreven, met de settext, enz.?
  #4  
Oud 26-11-10, 16:28
» iPhone 5 16GB (Wit) [FW: 8.1.2]  [Jailbreak: Nee]
» iPad mini Wi-Fi 16GB (Zwart) [FW: 8.1.2]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: Oct 2008
Locatie: Amsterdam
Berichten: 174
Standaard

Je methode pl zag er goed uit, daar was niks mis mee.
Ook kan je het gewoon met de property text doen:
Code:
 self.ht.text = @"een string";

Die SIGABRT kan diverse oorzaken hebben, vaak een methode die je aanroept op een object wat niet meer bestaat.

Via Run -> Console kan je zien wat er allemaal voor meldingen zitten voor de SIGABRT.
  #5  
Oud 26-11-10, 17:16
» iPhone 4 16GB (Zwart) [FW: 4.2.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: Aug 2010
Berichten: 84
Standaard

Oke, thanks voor de tip van de console, er kwam inderdaad iets raars te voorschijn! EDIT: heb het opgelost, ergens stond nog wel een verkeerde verwijzing. super veel van geleerd! thanks man!

Enigste rare is dat hij de tekst van de label niet naar Hoi! zet.

Mijn home.h nu:

Code:
#import <UIKit/UIKit.h>


@interface Home : UIViewController {

	IBOutlet UILabel *deLabel;
}

@property (nonatomic, retain) UILabel *deLabel;

-(void)setHome;

@end
mijn home.m

Code:
@implementation Home

@synthesize deLabel;

-(void)setHome
{
	NSString *tekst = @"hoi";
	[deLabel setText:tekst];
}
Hmmm, ik bedenk me nu, ik dit schrijf, dat iets de void sethome aan moet roepen. Maar dat moet niet. Want ik wil er gewoon info over de app in zetten. De tekst hoeft niet te veranderen. Maar in interface builder kun je met een label maar een regel tekst doen, en \n niet gebruiken. Hoe doe ik dit dan? Snap je waar ik heen wil?

(Kort samengevat: Ik wil gewoon een lap tekst in de view home zetten, van meerdere regels, maar weet niet hoe ik dit nu het handigst doe.)

Laatst gewijzigd door bluecola; 26-11-10 om 17:24.
  #6  
Oud 26-11-10, 17:21
» iPhone 5 16GB (Wit) [FW: 8.1.2]  [Jailbreak: Nee]
» iPad mini Wi-Fi 16GB (Zwart) [FW: 8.1.2]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: Oct 2008
Locatie: Amsterdam
Berichten: 174
Standaard

Oke, het wordt duidelijker.

In je main window xib laad je waarschijnlijk je home xib file, enkel staat hier als viewcontroller firstviewcontroller in plaats van home.
Na het laden van home xib probeert het framework de iboutlet deLabel te zoeken in fistviewcontroller, maar die is er dus niet.
Vandaar de fout melding.

Tevens raad ik je duidelijk namen te gebruiken dus b.v homeViewController in plaats van alleen home. Dat is gewoon een advies.
  #7  
Oud 26-11-10, 17:28
» iPhone 4 16GB (Zwart) [FW: 4.2.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: Aug 2010
Berichten: 84
Standaard

Citaat:
Oorspronkelijk geplaatst door TUX2K Bekijk bericht
Oke, het wordt duidelijker.

In je main window xib laad je waarschijnlijk je home xib file, enkel staat hier als viewcontroller firstviewcontroller in plaats van home.
Na het laden van home xib probeert het framework de iboutlet deLabel te zoeken in fistviewcontroller, maar die is er dus niet.
Vandaar de fout melding.

Tevens raad ik je duidelijk namen te gebruiken dus b.v homeViewController in plaats van alleen home. Dat is gewoon een advies.
Ja, ik had bij de inspector in het eerste tabblad wel Home staan, maar bij het 4e tabblad bij class niet. Was even zoeken, maar ik heb het. Supppppeerr bedankt voor je hulp (Y). Ik heb mn vorige post geedit, met het volgende probleem, dus als je zin hebt, dan graag je hulp (:
  #8  
Oud 26-11-10, 17:44
» iPhone 5 16GB (Wit) [FW: 8.1.2]  [Jailbreak: Nee]
» iPad mini Wi-Fi 16GB (Zwart) [FW: 8.1.2]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: Oct 2008
Locatie: Amsterdam
Berichten: 174
Standaard

Ja kan die lap tekst direct in de label pasten, je moet dan in de inspector van Intrface Builder, number of lines van de label op 0 zetten (0 = zo weel als je wilt);

OF in de viewDidLoad je label via de property vullen met de tekst die je wilt. Ook hier geld als je meerdere regels wilt dan moet de de number of lines op 0 zetten.
  #9  
Oud 26-11-10, 18:03
» iPhone 4 16GB (Zwart) [FW: 4.2.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: Aug 2010
Berichten: 84
Standaard

Helemaal prima! Dan moet ik neem ik aan per nieuw paragraaf een nieuwe label maken. \n binnen interface builder lijkt niet te werken?

En ziet apple dat niet als "geen-kwaliteit". Dat ik de label zo invul?
  #10  
Oud 26-11-10, 18:26
» iPhone 5 16GB (Wit) [FW: 8.1.2]  [Jailbreak: Nee]
» iPad mini Wi-Fi 16GB (Zwart) [FW: 8.1.2]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: Oct 2008
Locatie: Amsterdam
Berichten: 174
Standaard

Nee, Apple kijkt daar niet echt naar, meer naar de algemene kwaliteit van de app.
Ze kijk ook niet direct in je code, ze scannen het wel op private methods/frameworks maar voor de rest niet.
Reageren


Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten)

 
Discussietools
Weergave

Soortgelijke discussies

Discussie Auteur Forum Reacties Laatste bericht
SIGABRT Alwinkov Ontwikkelen voor iOS 6 17-03-11 13:55

Regels voor berichten
Je mag geen nieuwe discussies starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit
Trackbacks are Aan
Pingbacks are Aan
Refbacks are Uit



Alle tijden zijn GMT +2. Het is nu 22:50.