2014-10-01 2 views
5

У меня есть очень странные проблемы с MKMapViewDelegate, когда я реализовать этот метод дает мне ошибку, что я не понимаюMKMapViewDelegate Сбой команды из-за сигнал: неисправность Сегментации: 11

Ошибка только исчезает, когда я удалить все function,

Я попытался сделать пустую функцию, возвращающую нуль, но даю мне ту же ошибку.

func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! { 

    if annotation.isKindOfClass(MKUserLocation.classForCoder()) { 
     return nil 
    } 
    let AnnotationIdentifier:NSString = "AnnotationIdentifier" 
    var annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier(AnnotationIdentifier) 

    if annotationView != nil { 
     return annotationView 
    }else { 
     var annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: AnnotationIdentifier) 

     annotationView.canShowCallout = true 
     annotationView.image = UIImage(named: "btn_fav.png") 


     return annotationView 

    } 


} 

Ошибка: Сбой команды из-за сигнала: неисправность Сегментация: 11

CompileSwift normal arm64 /Users/Fortis/Proyectos/IOS Apps/Abilia/Abilia iOS/Abilia/Abilia/Vistas/Proyecto/MapaViewController.swift 
    cd /Users/Fortis/Proyectos/IOS Apps/Abilia/Abilia iOS/Abilia 
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c "/Users/Fortis/Proyectos/IOS Apps/Abilia/Abilia iOS/Abilia/Abilia/Classes/NetClass/Downloader.swift" -primary-file "/Users/Fortis/Proyectos/IOS Apps/Abilia/Abilia iOS/Abilia/Abilia/Vistas/Proyecto/MapaViewController.swift" "/Users/Fortis/Proyectos/IOS Apps/Abilia/Abilia iOS/Abilia/Abilia/Vistas/Widget/ToggleView.swift" . 

. . .

0 swift     0x00000001019df028 llvm::sys::PrintStackTrace(__sFILE*) + 40 
1 swift     0x00000001019df514 SignalHandler(int) + 452 
2 libsystem_platform.dylib 0x00007fff9a2dc5aa _sigtramp + 26 
3 libsystem_platform.dylib 000000000000000000 _sigtramp + 1708276336 
4 swift     0x0000000100fe90ea swift::ClangImporter::Implementation::loadAllMembers(swift::Decl const*, unsigned long long, bool*) + 3130 
5 swift     0x0000000101da2834 swift::IterableDeclContext::loadAllMembers() const + 100 
6 swift     0x0000000101d995dc swift::NominalTypeDecl::getMembers(bool) const + 28 
7 swift     0x0000000101dc029f swift::NominalTypeDecl::lookupDirect(swift::DeclName) + 79 
8 swift     0x0000000101dbe96a swift::DeclContext::lookupQualified(swift::Type, swift::DeclName, unsigned int, swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&) const + 3146 
9 swift     0x0000000100fe5941 (anonymous namespace)::SwiftDeclConverter::VisitObjCPropertyDecl(clang::ObjCPropertyDecl const*, swift::DeclContext*) + 161 
10 swift     0x0000000100fe0d0d clang::declvisitor::Base<clang::declvisitor::make_const_ptr, (anonymous namespace)::SwiftDeclConverter, swift::Decl*>::Visit(clang::Decl const*) + 3117 
11 swift     0x0000000100fe005b swift::ClangImporter::Implementation::importDeclImpl(clang::NamedDecl const*, bool&, bool&) + 331 
12 swift     0x0000000100fe4912 swift::ClangImporter::Implementation::importDeclAndCacheImpl(clang::NamedDecl const*, bool) + 226 
13 swift     0x0000000100fe879e swift::ClangImporter::Implementation::loadAllMembers(swift::Decl const*, unsigned long long, bool*) + 750 
14 swift     0x0000000101da2834 swift::IterableDeclContext::loadAllMembers() const + 100 
15 swift     0x0000000101d99a95 swift::ExtensionDecl::getMembers(bool) const + 21 
16 swift     0x0000000101dc027d swift::NominalTypeDecl::lookupDirect(swift::DeclName) + 45 
17 swift     0x0000000101dbe96a swift::DeclContext::lookupQualified(swift::Type, swift::DeclName, unsigned int, swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&) const + 3146 
18 swift     0x0000000101cc6288 swift::TypeChecker::lookupMember(swift::Type, swift::DeclName, swift::DeclContext*, bool) + 200 
19 swift     0x0000000101c34e2c swift::constraints::ConstraintSystem::lookupMember(swift::Type, swift::DeclName) + 220 
20 swift     0x0000000101c6b32d swift::constraints::ConstraintSystem::simplifyMemberConstraint(swift::constraints::Constraint const&) + 2173 
21 swift     0x0000000101c6dc88 swift::constraints::ConstraintSystem::simplifyConstraint(swift::constraints::Constraint const&) + 216 
22 swift     0x0000000101c354bc swift::constraints::ConstraintSystem::addConstraint(swift::constraints::Constraint*, bool, bool) + 28 
23 swift     0x0000000101c5a8a5 swift::ASTVisitor<(anonymous namespace)::ConstraintGenerator, swift::Type, void, void, void, void, void>::visit(swift::Expr*) + 9317 
24 swift     0x0000000101c5c502 (anonymous namespace)::ConstraintWalker::walkToExprPost(swift::Expr*) + 162 
25 swift     0x0000000101d6627f (anonymous namespace)::Traversal::visit(swift::Expr*) + 6431 
26 swift     0x0000000101d62765 swift::Expr::walk(swift::ASTWalker&) + 53 
27 swift     0x0000000101c583b0 swift::constraints::ConstraintSystem::generateConstraints(swift::Expr*) + 96 
28 swift     0x0000000101c90ab6 swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::Type, swift::Type, bool, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*) + 518 
29 swift     0x0000000101cd73e3 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) + 291 
30 swift     0x0000000101cd64c3 swift::TypeChecker::typeCheckFunctionBodyUntil(swift::FuncDecl*, swift::SourceLoc) + 371 
31 swift     0x0000000101cd6b8f swift::TypeChecker::typeCheckAbstractFunctionBody(swift::AbstractFunctionDecl*) + 95 
32 swift     0x0000000101c86b65 typeCheckFunctionsAndExternalDecls(swift::TypeChecker&) + 421 
33 swift     0x0000000101c87476 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, unsigned int) + 1734 
34 swift     0x0000000100fc07dd swift::CompilerInstance::performSema() + 2253 
35 swift     0x0000000100d54831 frontend_main(llvm::ArrayRef<char const*>, char const*, void*) + 1953 
36 swift     0x0000000100d5294d main + 1677 
37 libdyld.dylib   0x00007fff960e05fd start + 1 
38 libdyld.dylib   0x0000000000000061 start + 1777465957 
Stack dump: 
0. Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c /Users/Fortis/Proyectos/IOS Apps/Abilia/Abilia iOS/Abilia/Abilia/Classes/NetClass/Downloader.swift -primary-file /Users/Fortis/Proyectos/IOS Apps/Abilia/Abilia iOS/Abilia/Abilia/Vistas/Proyecto/MapaViewController.swift /Users/Fortis/Proyectos/IOS Apps/Abilia/Abilia iOS/Abilia/Abilia/Vistas/Widget/ToggleView.swift /Users/Fortis/Proyectos/IOS Apps/Abilia/Abilia iOS/Abilia/Abilia/Classes/Entities/Mapa.swift /Users/Fortis/Proyectos/IOS Apps/Abilia/Abilia iOS/Abilia/Abilia/Classes/Entities/Edificio__c.swift . 

. . . . 1. При проверке типа «loadMapa» в/Users/Fortis/Proyectos/IOS Apps/Abilia/Abilia iOS/Abilia/Abilia/Vistas/Proyecto/MapaViewController.swift: 56: 5 2. Хотя выражение проверки типов при [/ Пользователи/Fortis/Proyectos/IOS Apps/Abilia/Abilia iOS/Abilia/Abilia/Vistas/Proyecto/MapaViewController.swift: 57: 9 - строка: 57: 29] RangeText = "mapaView.delegate = s"

func loadMapa() { 
     mapaView.delegate = self 
     var theCoord = CLLocationCoordinate2DMake(0, 0) 
     if let coordenadasU = coordenadas { 
      let coordArray:[NSString] = coordenadasU.componentsSeparatedByString(",") as [NSString] 
      if coordArray.count > 1 { 
       let lat: CLLocationDegrees = coordArray[0].doubleValue; 
       let long: CLLocationDegrees = coordArray[1].doubleValue; 
       theCoord = CLLocationCoordinate2DMake(lat, long) 


      } 

     } 

     pointAnnotation.coordinate = theCoord; 
     mapaView.addAnnotation(pointAnnotation) 

     let span = MKCoordinateSpan(latitudeDelta: 0.1, longitudeDelta: 0.1) 
     let region:MKCoordinateRegion = MKCoordinateRegion(center: theCoord, span: span) 

     mapaView.setRegion(region, animated: true) 
     mapaLoaded = true; 

    } 
+0

У меня такая же проблема в Xcode 6.0.1 GM. Такая же трассировка стека, и это происходит, когда я назначаю свойство 'delegate'' MKMapView'. –

+0

Также происходит в Xcode 6.1 GM 2. –

+0

Ну, у меня все еще нет подсказки, есть ли другое решение? С уважением –

ответ

6

Это одна из многих ошибок Swift, из-за которых компилятор неожиданно падает из-за того, что в вашем приложении не работает определенный код.

Вы должны изолировать проблемную часть (например, прокомментировав части экрана), и после ее компиляции снова найдите обходной путь для использования другого кода.

Как выглядит ваш метод loadMapa? Это причина, о которой говорил компилятор.

+1

Спасибо за ответ, я просто добавлю код дорожной карты. Хорошо, я полагаю, что это ошибка, потому что он работал с xcode beta7 и работал при обновлении до последней версии. –

+0

Жаль, что я не застрял с Objective-C. Это просто хлопот со стороны. –

+0

@AdamWaite Да, требуется некоторое время (и последний Xcode 6.1), чтобы привыкнуть к нему и снова восстановить производительность. – fluidsonic

2

У меня была такая же ошибка, когда подклассов UIButton и переопределение выбранное свойство как это:

class ActionButton: UIButton { 

    override var selected: Bool = true { 
     didSet { 
      updateBackgroundColor() 
     } 
    } 
} 

Решение было удалить «= истина» от переназначения заявления:

class ActionButton: UIButton { 

    override var selected: Bool { 
     didSet { 
      updateBackgroundColor() 
     } 
    } 
} 

Я просто угадывая но я бы дважды проверял, правильно ли вы реализовали свой метод делегирования ... С учетом всех восклицательных знаков ... '!' в конце MKAnnotationView! кажется немного подозрительным.

0

Не совсем конкретный ответ, но я хотел добавить еще одну возможную причину этой ошибки (поскольку она все еще довольно распространена).

Моя программы была код так:

if (myArray.count > 0) && (.Foo != myArray.last) { 
    // Do something 
} 

В моем случае .Foo принадлежал к перечислимому, для которого я реализованного Equatable, однако, по какой-то причине Swift компилятор не выделить мое сравнение с myArray.last как ошибка (не факультативна по сравнению с опциональной) и вызвала ошибку сегментации.

В моем случае исправление было просто использовать myArray.last!, так как myArray.count > 0 гарантирует, что это всегда будет успешным (должен быть хотя бы один элемент).

Как обычно, как только вы знаете, что такое ошибка, обязательно передайте ее bug report.apple.com!

1

Я искал причину ошибки: «Ошибка команды из-за сигнала: ошибка сегментации: 11» вызывает проблемы в моем приложении ... Мое приложение зависит от анализа. Я узнал, что Анализировать внес изменения в метод:

 query.findObjectsInBackgroundWithBlock({ (objects : [AnyObject]?, error : NSError?) -> Void in 

в

 query.findObjectsInBackgroundWithBlock({ (objects : [**PFObject**]?, error : NSError?) -> Void in 

Я изменил все это, и теперь он работает. Надеюсь, это поможет кому-то использовать Parse. Cheers

Смежные вопросы