2010-02-18 3 views
1

Je construis cette application et je rencontre quelques problèmes que je n'ai jamais vu auparavant.Méthode causant un accident étrange

  1. L'application se bloque lorsque j'exécute la méthode ci-dessous qui est connectée à un uibutton pour un déclencheur. Alors, quand j'appuie sur le bouton, il fait l'impression, puis le simulateur s'écrase sur le tremplin. Si je lance à nouveau l'application à partir du tremplin, elle n'atteint pas la méthode d'impression, si je reconstruis à partir de xcode, elle le fait, puis rapidement comme avant.

  2. Habituellement, il y a quelques informations dans la console de débogage où je peux au moins avoir une idée de ce qui se passe, mais il ne semble pas y en avoir beaucoup. Une chose que je remarque est qu'il ya quelque chose sur l'accessibilité étant activée ou quelque chose quand l'application lance un premier temps dans le simulateur, je ne me souviens pas si cela est toujours là ou non:

2010-02-18 10: 35: 19.024 Comptant [497: 207] ******* Accessibilité Statut Modifié: Le 2010-02-18 10: 35: 19.134 Comptant [497: 207] ********* * Loading AX pour: com.yourcompany.Cash ************

copyright 2010 Nicholas Iannone:

-(IBAction) logTransaction { 

NSIndexPath *indexPath = [[NSIndexPath alloc] init]; 
indexPath = [self.categoryTableView indexPathForSelectedRow]; 

NSInteger selectedCategory = indexPath.row; 
[indexPath release]; 
NSString *categoryString = [[NSString alloc] init]; 
categoryString = [self.categoryArray objectAtIndex:selectedCategory]; 
CLLocationManager *locationManager = [[CLLocationManager alloc] init]; 
locationManager.delegate = self; 
locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
locationManager.distanceFilter = 1000.0f; 
[locationManager startUpdatingLocation]; 
double x = 10.0; 
double y = 10.0; 
NSString *descriptionString = [[NSString alloc] init]; 

descriptionString = descriptionField.text; 
//[locationManager stopUpdatingLocation]; 

Transaction *newTransaction = [[Transaction alloc] initWithAmount: [self.amountField.text integerValue] 
                 description: descriptionString 
                 category: categoryString 
                 locationX: x 
                 locationY: y]; 

             [categoryString release]; 
[newTransaction print]; 

//log transaction here... 

[newTransaction release]; 

est ici la sortie de la console:

2/18/10 10:35:19 AM Cash [497] ********** Loading AX pour: com.votreentreprise.Cash ************* 18/02/10 10:35:28 AM Argent [497] 0.000000, sddssd, Snacks, 2010-02-18 10:35: 28 -0800,10.000000,10.000000 18/02/10 10:35:28 AM com.apple.launchd.peruser.501 [91] (UIKitApplication: com.yourcompany.Cash [0x9148] [497]) Le travail apparaît avoir écrasé: Segmentation défaut 18/02/10 10:35:28 AM SpringBoard [482] Application 'Cash' sortie anormalement avec le signal 11: Segmentation fault 18/02/10 10:35:28 AM ReportCrash [491 ] Rapport d'accident sauvegardé pour Cash [497] version ??? (???) à /Users/knyck2/Library/Logs/DiagnosticReports/Cash_2010-02-18-103528_Nicholas-Iannones-MacBook-Pro.crash

est ici le journal de l'accident:

processus: Cash [497] Chemin:
/utilisateurs/knyck2/Bibliothèque/application support/iPhone Simulator/3.2/Applications/F54FA00C-9E77-4B9A-8774-2D5B5488A1BA/Cash.app/espèces Identifiant: espèces Version:
??? (???) Type de code: X86 (natif) Processus parent: launchd [91]

Date/Heure: 2010-02-18 10: 35: 28,631 -0800 OS Version:
Mac OS X 10.6 .2 (10C540) Rapport Version: 6

Type d'exception: EXC_BAD_ACCESS (SIGSEGV) Codes d'exception: KERN_INVALID_ADDRESS à 0x0000000014600478 Crashed Discussion: 0 file d'attente d'expédition: com.apple.main-fil

application spécifique information: objc_msgSend() nom du sélecteur: libérer iPhone Simulator 3.2 (193), iPhone OS 3.2 (7B298g)

discussion 0 Crashed: Dispatch file d'attente: com .apple.main-fil 0

libobjc.A.dylib 0x9805aedb objc_msgSend + 27 1
UIKit
0x002b4a19 _UIApplicationHandleEvent + 8468 2 GraphicsServices 0x02f1f2a8 PurpleEventCallback + 1576 3 CoreFoundation
0x026bb87e CFRunLoopRunSpecific + 4094 4 CoreFoundation
0x026ba878 CFRunLoopRunInMode + 88 5 GraphicsServices
0x02f1da4d GSEventRunModal + 217 6
GraphicsServices
0x02f1db12 GSEventRun + 115 7 UIKit 0x002b265d UIApplicationMain + 1134 8 automatique
0x00002648 principal + 102 (main.m: 13) 9

automatique démarre 0x000025b6 + 54

Fil 1: 0 libSystem.B .dylib
0x937b88da mach_msg_trap + 10 1
libSystem.B.dylib
0x937b9047 mach_msg + 68 2
CoreFoundation
0x026bb022 CFRun LoopRunSpecific + 1954 3 CoreFoundation
0x026ba878 CFRunLoopRunInMode + 88 4 WebCore
0x03151933 RunWebThread (void *) + 467 5 libSystem.B.dylib
0x937e5fbd _pthread_start + 345 6

libSystem.B.dylib 0x937e5e42 thread_start + 34

Fil 0 écrasé avec X86 Fil Etat (32 bits): eax: 0x07802a50 EBX: 0x00017711 ecx: 0x9655d0c4 EDX: 0x07833ba2 edi: 0x14600478 esi: 0x00000000 ebp: 0xbfffe158 esp: 0xbfffdfd4 ss: 0x0000001f EFL: 0x00010206 EIP: 0x9805aedb cs: 0x00000017 ds: 0x0000001f es: 0x0000001f fs: 0x00000000 gs: 0x00000037 CR2: 0x14600478

Images binaires: 0x1000 - 0x5ff7 + argent? (???) /Utilisateurs/knyck2/Bibliothèque/Application Support/iPhone Simulator/3.2/Applications/F54FA00C-9E77-4B9A-8774-2D5B5488A1BA/Cash.app/Espèces 0xd000 - 0xfff7 + PBGDBIntrospectionSupport.A. dylib ??? (???) < 8C448816-8655-143E-DA39-C8157FDA8C8B> /Developer/Applications/Xcode.app/Contents/PlugIns/GDBMIDebugging.xcplugin/Contents/Resources/PBGDBIntrospectionSupport.A.dylib 0x14000 - 0x1a8ff3 + Fondation ??? (???) < 4361202B-C361-85C9-AAD0-3D062EF44941> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/Foundation.framework/Foundation 0x29e000 - 0x2063fe7 + UIKit? (???) < 524597DC-F210-115D-E31D-01A3429E25C7> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/UIKit.framework/UIKit 0x23be000 - 0x25c6fe7 com.apple.CoreGraphics 1.359.16 (???) < 017CBE03-17D3-25FD-E775-087B415993AA> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/ Bibliothèque/Frameworks/CoreGraphics.framework/CoreGraphics 0x262e000 - 0x2665ff7 + CoreLocation ??? (???) < 80CA49D0-A8EA-0638-A407-0CC131AEEB41> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/CoreLocation.framework/CoreLocation 0x268e000 - 0x2799fff + CoreFoundation ??? (???) /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation 0x287d000 - 0x2a15fe7 + libicucore.A.dylib ?? ? (???) < 13A09086-26EF-E491-ADD8-9019C31542FC> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/usr/lib/libicucore.A.dylib 0x2a76000 - 0x2b75fe7 + libxml2.2.dylib ??? (???) < 78BEDCC4-E0FD-1C59-70ED-46FB3D76055C> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/usr/lib/libxml2.2.dylib 0x2b9a000 - 0x2c41fe7 + CFNetwork ??? (???) < 24AFEAF9-230F-C79A-3A2F-BB9F1945CF9A> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/CFNetwork.framework/CFNetwork 0x2cc0000 - 0x2cf4ff7 + SystemConfiguration ??? (???) < 5448E217-DB17-F241-AB84-C2FE18372948> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration 0x2d16000 - 0x2d65ff7 + sécurité? (???) < 90BF3878-B2F5-8FD0-4E81-B59E64C47E1D> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/Security.framework/Security 0x2d8b000 - 0x2e58fe7 + libsqlite3.dylib ??? (???) < 3B663A82-D85F-3CD5-130C-FAA6C5ED2D0E> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/usr/lib/libsqlite3.dylib 0x2e68000 - 0x2ef3fff com. apple.framework.IOKit 1.5.1 (???) /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit 0x2f19000 - 0x2f26ff3 + GraphicsServices ??? (???) < 7FB2250F-CDD1-D975-0387-6E884CC061CD> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices 0x2f39000 - 0x3071ff7 + JavaScriptCore ??? (???/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/PrivateFrameworks/JavaScriptCore.framework/JavaScriptCore (???) < 8801B91D-C8BC-51CC-B80A-FB9C67BA8FF2> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/PrivateFrameworks/WebCore.framework/WebCore 0x3db5000 - 0x3e4bff7 + WebKit ??? (???) < 0D579ECA-E22E-7C70-A214-73D2221CD1C7> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/PrivateFrameworks/WebKit.framework/WebKit 0x3ec9000 - 0x3f87fe7 + ImageIO ??? (???) < 524C2CFC-6F77-3B4F-390F-40711BB56980> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/PrivateFrameworks/ImageIO.framework/ImageIO 0x3fb2000 - 0x3fd0ff7 + AddressBook ??? (???) < 2EF304E3-4B16-5B0E-E072-BFABF4B44CF5> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/AddressBook.framework/AddressBook 0x3ff1000 - 0x4145fe7 + AudioToolbox ??? (???) < 27DC788A-231B-9DB5-0B48-04A2A8D27F32> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox 0x4198000 - 0x425aff7 + QuartzCore ??? (???) /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/QuartzCore.framework/QuartzCore 0x42b5000 - 0x42c2ff7 + SpringBoardServices ??? (???) < 3CDBCAE3-B6D3-D734-6CB0-AB39EBBE7D57> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/PrivateFrameworks/SpringBoardServices.framework/SpringBoardServices 0x42cd000 - 0x42f9fff + AppSupport ??? (???) /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/PrivateFrameworks/AppSupport.framework/AppSupport 0x4319000 - 0x435cfe7 + CoreText ??? (???) < 971632EA-E809-8D15-BE25-E115A4FBDFF4> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/CoreText.framework/CoreText 0x438c000 - 0x43c7ff7 + MobileCoreServices ??? (???) < 5BFA76AC-EC1B-8D9F-4533-B3DD44041107> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices 0x43e5000 - 0x448efe7 + ProofReader ??? (???) /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/PrivateFrameworks/ProofReader.framework/ProofReader 0x44ab000 - 0x44b6ff7 + CoreVideo ??? (???) /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/PrivateFrameworks/CoreVideo.framework/CoreVideo 0x44c2000 - 0x44d8fe7 + OpenGLES ??? (???) /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/OpenGLES.framework/OpenGLES 0x44e2000 - 0x4558ff3 + CoreAudio ??? (???) < 14C17E9E-0D13-A7BD-3A06-C3F460FD261C> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/CoreAudio.framework/CoreAudio 0x4594000 - 0x4649fe7 libcrypto .0.9.7.dylib ??? (???) < 39CDB041-9DF5-01B1-4B33-03EC4CCA40B3> /usr/lib/libcrypto.0.9.7.dylib 0x468f000 - 0x46b5fff libssl.0.9.7.dylib ??? (???) < 924E1BF8-C24D-4A5C-3DB6-A85034392D19> /usr/lib/libssl.0.9.7.dylib 0x46ea000 - 0x46eaff7 + AccessibilitéSettingsLoader ??? (???) < 21BFF58D-21D2-210F-3150-873A8CC87399> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/AccessibilityBundles/AccessibilitySettingsLoader.bundle/AccessibilitySettingsLoader 0x46ef000 - 0x46f1ff7 + libAccessibility.dylib ??? (???) < 9F1CEAA6-2910-7F97-A626-DAA33724ED79> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/usr/lib/libAccessibility.dylib 0x7900000 - 0x7909ffb + IAP ?? ? (???) /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/PrivateFrameworks/IAP.framework/IAP 0x7916000 - 0x794cff7 + UIKit ??? (???) /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/AccessibilityBundles/UIKit.axbundle/UIKit 0x7990000 - 0x799bff7 + UIAccessibility ??? (???) < 4E2BD72C-F67F-D0DF-78FA-FB1D5840F6B7> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/PrivateFrameworks/UIAccessibility.framework/UIAccessibility 0x79ab000 - 0x79baff7 + AXRuntime ??? (???) /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/PrivateFrameworks/AXRuntime.framework/AXRuntime 0x79c8000 - 0x7a0afe7 + libCGFreetype.A.dylib? ?? (???) < 8853F0B7-8EE5-AD36-BC97-B0AD8782E547> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/CoreGraphics.framework/Resources/libCGFreetype. A.dylib 0x7f31000 - 0x7f57fe7 + libRIP.A.dylib ??? (???) /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/CoreGraphics.framework/Resources/libRIP.A.dylib 0x9cff000 - 0x9d3efe7 + TextInput? ?? (???) /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/PrivateFrameworks/TextInput.framework/TextInput 0x9d6a000 - 0x9eafff3 + libmecabra.dylib ??? (???) < 1C45F15E-3F66-3F28-46C7-78EC4B63C803> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/usr/lib/libmecabra.dylib 0x9ee1000 - 0x9ff4ff7 + CoreData? ?? (???) < 6F49CC28-8102-D224-DCBE-12045B6DBA92> /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/CoreData.framework/CoreData 0x8fe00000 - 0x8fe4162b dyld 132,1 (???) < 211AF0DD-42D9-79C8-BB6A-1F4BEEF4B4AB> /usr/lib/dyld 0x91fe7000 - 0x91feafe7 libmathCommon.A.dylib ??? (???) < 1622A54F-1A98-2CBE-B6A4-2122981A500E> /usr/lib/system/libmathCommon.A.dylib 0x93497000 - 0x93501fe7 libstdC++ .dddib ??? (???) < 411D87F4-B7E1-44EB-F201-F8B4F9227213> /usr/lib/libstdc++.6.dylib 0x937b8000 - 0x9395cfeb libSystem.B.dylib ??? (???) /usr/lib/libSystem.B.dylib 0x96692000 - 0x966d8ff7 libauto.dylib ??? (???) < 85670A64-3B67-8162-D441-D8E0BE15CA94> /usr/lib/libauto.dylib 0x9706e000 - 0x97082fe7 libbsm.0.dylib ??? (???) < 14CB053A-7C47-96DA-E415-0906BA1B78C9> /usr/lib/libbsm.0.dylib 0x98055000 - 0x98102fe7 libobjc.A.dylib ??? (???) /usr/lib/libobjc.A.dylib 0x98103000 - 0x981f7fe7 libiconv.2.dylib ??? (???) < 0C578460-3929-29DD-585A-DB1E0C977425> /usr/lib/libiconv.2.dylib 0x98fd9000 - 0x98fe7fe7 libz.1.dylib ??? (???) < 7B7A02AB-DA99-6180-880E-D28E4F9AA8EB> /usr/lib/libz.1.dylib 0xffff0000 - 0xffff1fff libSystem.B.dylib ??? (???) /usr/lib/libSystem.B.dylib

+0

Merci pour reformater dague! – nickthedude

Répondre

2

Ceci est faux:

NSIndexPath *indexPath = [[NSIndexPath alloc] init]; 
indexPath = [self.categoryTableView indexPathForSelectedRow]; 

NSInteger selectedCategory = indexPath.row; 
[indexPath release]; 

Vous instancier un vide NSIndexPath puis la référence à écraser lui. La version sur la dernière ligne est envoyée à un objet entièrement différent retourné par la vue de la table. L'objet que vous créez n'est jamais utilisé et jamais libéré.

Cela fonctionne:

NSIndexPath *indexPath = [self.categoryTableView indexPathForSelectedRow]; 
NSInteger selectedCategory = indexPath.row; 

Vous n'êtes pas créer un objet NSIndexPath, vous avez donc aucune responsabilité pour le libérer.

(votre libération inutile est à l'origine de l'instance de chemin d'index à prématurément désallouée. Lorsque le code d'Apple essaie de libérer l'objet, il n'existe plus, et les accidents app)

+0

merci l'homme, qui a travaillé un régal. J'ai eu le temps d'essayer de comprendre cette chose et cela a fonctionné étonnamment, la première fois que vous l'avez essayé au moins, mais oui, il était cassé. merci beaucoup le code semble être mis en place parfaitement maintenant grâce aux deux réponses ici, je voudrais pouvoir donner deux réponses le chèque vert, mais un seul permis. Maintenant, je vais essayer de résoudre d'autres problèmes. :) – nickthedude

+0

Merci. Je recevais un plantage après avoir libéré le texte de renvoyé par NSXMLParser. Ma question est, n'est pas le chemin d'index retourné par le nouvel objet? N'augmente-t-il pas le nombre de références lorsqu'il est renvoyé par la méthode? –

2

Ceci est juste une supposition, ne pas tout le code est là. Dans votre méthode init pour la classe Transaction, assurez-vous de conserver les chaînes? (catégorie et description). Ce qui me frappe, c'est que vous initialisez la Transaction, puis relâchez immédiatement la catégorie categoryString. Si vous ne retenez pas la chaîne, cela pourrait être la source de votre accident.

Sur une note de côté, vous fuyez la mémoire. Ici:

NSString *descriptionString = [[NSString alloc] init]; 
descriptionString = descriptionField.text; 

descriptionString pointe vers une chaîne nouvelle allocation, pour être réaffectés à une chaîne existante, de sorte que la première chaîne est une fuite. Vous devriez changer cela:

NSString *descriptionString; 
descriptionString = descriptionField.text; 

ou plus simplement:

NSString *descriptionString = descriptionField.text; 
+0

J'ai les chaînes définies comme propriétés différentes et j'utilise copie, peut-être que je devrais utiliser conserver? @property (non atomique, copie) NSString * description; en ce qui concerne la fuite de mémoire, merci, j'ai joué avec des versions parce que dans la recherche de cela, j'ai vu qu'une segmentation d'une faute peut être causée par la libération d'un objet. essayer un retenir maintenant – nickthedude

+0

Je pense que cela a résolu le problème bien que le programme ne fonctionne toujours pas tout à fait correct, mais je pense que c'était tout. Merci – nickthedude

+0

les déclarations de propriétés affectent uniquement les getters et les setters, pas la fonction init, donc le problème aurait pu exister si vous n'avez pas utilisé la fonction setter dans votre méthode init. Glad ma solution a aidé. – bobDevil