2016-12-13 13 views
2

Ниже трассировки стека из Crashlytics, он выходит из строя, когда высота рамы Вид текста имеет значение: (я получил EXC_BAD_ACCESS KERN_INVALID_ADDRESS и SIGABRT ABORT аварии на одной и той же линии @objc UIView.height.setter (UIView+.swift))IOS CoreText аварии: EXC_BAD_ACCESS KERN_INVALID_ADDRESS при установке высоты вид

EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x000000000000000d 

Crashed: com.apple.main-thread 
    0 CoreText      0x194d24cd8 TOpenTypeMorph::SetLookups(OTL::GSUB&, unsigned int const*, OTL::GlyphLookups&) + 200 
    1 CoreText      0x194d24dd4 TOpenTypeMorph::SetLookups(OTL::GSUB&, unsigned int const*, OTL::GlyphLookups&) + 452 
    2 CoreText      0x194d25a40 void TOpenTypeMorph::ApplyShapingEngine<TInlineVector<unsigned int, 30ul> >(OTL::GSUB&, OTL::GlyphLookups&, unsigned int*, CFRange, TInlineVector<unsigned int, 30ul>&, SyncState&) + 1620 
    3 CoreText      0x194d24fac TOpenTypeMorph::ShapeGlyphs(SyncState&) + 340 
    4 CoreText      0x194cc4a4c TShapingEngine::ShapeGlyphs(TLine&, TCharStream const&) + 224 
    5 CoreText      0x194c8fa48 TTypesetter::TTypesetter(__CFArray const*, __CFString const*, void const* (*)(__CTRun const*, __CFString const*, void*), void*) + 188 
    6 CoreText      0x194c8f860 CTTypesetterCreateWithRunArray + 88 
    7 UIFoundation     0x197dffbb4 -[NSATSGlyphStorage createCTTypesetter] + 1512 
    8 UIFoundation     0x197dfa960 -[NSATSTypesetter _ctTypesetter] + 296 
    9 UIFoundation     0x197e03b14 -[NSATSLineFragment layoutForStartingGlyphAtIndex:characterIndex:minPosition:maxPosition:lineFragmentRect:] + 128 
    10 UIFoundation     0x197dfb534 -[NSATSTypesetter _layoutLineFragmentStartingWithGlyphAtIndex:characterIndex:atPoint:renderingContext:] + 2316 
    11 UIFoundation     0x197dfcaf8 -[NSATSTypesetter layoutParagraphAtPoint:] + 160 
    12 UIFoundation     0x197e53980 -[NSTypesetter _layoutGlyphsInLayoutManager:startingAtGlyphIndex:maxNumberOfLineFragments:maxCharacterIndex:nextGlyphIndex:nextCharacterIndex:] + 5692 
    13 UIFoundation     0x197e53da4 -[NSTypesetter layoutCharactersInRange:forLayoutManager:maximumNumberOfLineFragments:] + 244 
    14 UIFoundation     0x197dfd558 -[NSATSTypesetter layoutCharactersInRange:forLayoutManager:maximumNumberOfLineFragments:] + 448 
    15 UIFoundation     0x197de968c -[NSLayoutManager(NSPrivate) _fillLayoutHoleForCharacterRange:desiredNumberOfLines:isSoft:] + 1116 
    16 UIFoundation     0x197deb180 -[NSLayoutManager(NSPrivate) _fillLayoutHoleAtIndex:desiredNumberOfLines:] + 196 
    17 UIFoundation     0x197deb8b4 -[NSLayoutManager(NSPrivate) _markSelfAsDirtyForBackgroundLayout:] + 344 
    18 UIFoundation     0x197df477c -[NSLayoutManager(NSPrivate) _invalidateLayoutForExtendedCharacterRange:isSoft:invalidateUsage:] + 2292 
    19 UIFoundation     0x197e1dee8 -[NSLayoutManager textContainerChangedGeometry:] + 332 
    20 UIFoundation     0x197e40220 -[NSTextContainer setSize:] + 160 
    21 UIKit       0x197f74508 _UITextContainerViewResyncNSTextContainer + 264 
    22 UIKit       0x19890198c __64-[_UITextContainerView _setFrameOrBounds:oldRect:settingAction:]_block_invoke + 52 
    23 UIKit       0x198901878 -[_UITextContainerView _setFrameOrBounds:oldRect:settingAction:] + 308 
    24 UIKit       0x197f7436c -[_UITextContainerView setFrame:] + 188 
    25 UIKit       0x1988ee64c -[UITextView _resyncContainerFrameForNonAutolayoutDeferringSizeToFit:] + 644 
    26 UIKit       0x1988ef1b4 -[UITextView _setFrameOrBounds:fromOldRect:settingAction:] + 500 
    27 UIKit       0x197f73bf8 -[UITextView setFrame:] + 188 
    28 MyAppCore      0x1024ac944 @objc UIView.height.setter (UIView+.swift) 
    29 MyAppShell      0x1030a1cbc MyAppTextBaseCell.setSubviewFrames() ->() (MyAppTextBaseCell.swift) 
    30 MyAppShell      0x1059254e0 MyAppCollectionViewCell.layoutSubviews() ->() (MyAppCollectionViewCell.swift:215) 
    31 MyAppShell      0x1059255d4 @objc MyAppCollectionViewCell.layoutSubviews() ->() (MyAppCollectionViewCell.swift) 
    32 UIKit       0x197ec6220 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1196 
    33 QuartzCore      0x195386188 -[CALayer layoutSublayers] + 148 
    34 QuartzCore      0x19537ae64 CA::Layer::layout_if_needed(CA::Transaction*) + 292 
    35 UIKit       0x197edac90 -[UIView(Hierarchy) layoutBelowIfNeeded] + 1020 
    36 MyAppLib      0x100b56ea4 -[MyAppImpressionTracker reloadViewPortCellsWithCompletion:] (MyAppImpressionTracker.m:59) 
    37 MyAppLib      0x100b65f0c -[MyAppTracker viewPortWillRefresh:withReloadDataCompletion:] (MyAppTracker.m:150) 
    38 MyAppShell      0x1030d3440 MyAppViewController.reloadData() ->() (MyAppViewController.swift) 
    39 MyAppFeed      0x102a85ad4 MyAppViewController.providerHasUpdated(fromCache : Bool, hasInitialUpdates : Bool) ->() (MyAppViewController.swift) 
    40 MyAppFeed      0x102a85c80 @objc MyAppViewController.providerHasUpdated(fromCache : Bool, hasInitialUpdates : Bool) ->() (MyAppViewController.swift) 
    41 MyAppFeed      0x102a53030 protocol witness for MyAppProviderDelegate.providerHasUpdated(fromCache : Bool, hasInitialUpdates : Bool) ->() in conformance MyAppViewController (MyAppCellViewModel.swift) 
    42 MyAppFeed      0x102b35c84 specialized MyAppProvider.(updateSectionProviders(Bool, hasInitialUpdates : Bool, completion :() ->()?) ->()).(closure #2) (MyAppProvider.swift) 
    43 MyAppFeed      0x102b32380 partial apply for MyAppProvider.(updateSectionProviders(Bool, hasInitialUpdates : Bool, completion :() ->()?) ->()).(closure #2) (MyAppProvider.swift) 
    44 MyAppCore      0x10246188c partial apply for static GCD.(dispatchAsyncMyAppOperationQueue(() ->(), thenOnMainQueue :() ->()?) ->()).(closure #1).(closure #1) (QueueHelper.swift) 
    45 libdispatch.dylib    0x190ef9200 _dispatch_call_block_and_release + 24 
    46 libdispatch.dylib    0x190ef91c0 _dispatch_client_callout + 16 
    47 libdispatch.dylib    0x190efdd6c _dispatch_main_queue_callback_4CF + 1000 
    48 CoreFoundation     0x19201bf2c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 
    49 CoreFoundation     0x192019b18 __CFRunLoopRun + 1660 
    50 CoreFoundation     0x191f48048 CFRunLoopRunSpecific + 444 
    51 GraphicsServices    0x1939ce198 GSEventRunModal + 180 
    52 UIKit       0x197f342fc -[UIApplication _run] + 684 
    53 UIKit       0x197f2f034 UIApplicationMain + 208 
    54 MyApp       0x1000b344c main (AppDelegate.swift:27) 
    55 libdispatch.dylib    0x190f2c5b8 (Missing) 

Поскольку журналы сбоев связаны с Glyph, похоже, что это происходит для какого-то странного символа/символа, может быть на другом языке, кроме английского.

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

ответ

1

Это происходит из-за того, что символ получен. это проблема со старыми версиями ios. см. this video.