2016-04-14 20 views
0

我真的需要一些幫助......無法加載Today擴展與表視圖

我嘗試使用擴展的今天得到一些東西,並刷新與SOAP請求的數據的單元格。它在模擬器中的作用就像一個魅力,但在實際設備(iPhone 6 Plus)小部件上更新單元,並在不久之後切換到「無法加載」。

該應用程序在分析器中顯示> 20 MB,我讀取的最大大小僅爲10 MB左右。但是,當我只展示 - 最好 - 單個桌子視圖單元格時,這怎麼可能?整個SOAP框架有2.6 MB ......這讓我瘋狂......

而且......在日誌中不會有一些內存錯誤,而不是「功能在擴展名類型com.apple中不可用.widget擴展「?我不認爲我的崩潰與大小有關,下面的屏幕截圖顯示了一個小部件大小爲4 MB的崩潰。

有沒有人有這種鬥爭的經驗?

我可以提供:

我TodayViewController:

import CoreData 
import NotificationCenter 

class TodayViewController: UITableViewController, NCWidgetProviding { 

    struct CellConstants { 
     static let parkingProcess = "ParkingProcessCell" 
     static let login = "LoginCell" 
     static let noTransactions = "NoTransactionsCell" 
    } 

    var loadedParkingProcesses: [MCParkingProcess] = [] 
    var loggedInInternal = false 
    var noTransactions = false 
    var reload = true 
    var fetchingData = false 
    var loggedIn: Bool { 
     get { 
      let defaults = NSUserDefaults(suiteName:  "group.not.relevant.here") 
      loggedInInternal = defaults?.stringForKey("username") != nil && 
      defaults?.stringForKey("password") != nil 
       ? true : false 

      return loggedInInternal 
     } 
    } 

    func resetTimer() { 
     print("timer reset") 
     reload = true 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     print("memory warning!") 
    } 

    func loadData(username: String, password: String) { 

     if fetchingData { 
      return 
     } 

     fetchingData = true 

     guard reload == true else { 
      let _ = NSTimer(timeInterval: 10, target: self, selector:  #selector(TodayViewController.resetTimer), userInfo: nil,  repeats: false) 
      return 
     } 

     reload = false 

     let locale = NSLocale.preferredLanguages()[ 0].componentsSeparatedByString("-")[0] 
     MCSoapClient.sharedInstance().loadRunningParkingProcessesForUsername (username, password: password, language: locale, completion: {  statusCode, result in 

      guard let dict = result as? [String: AnyObject] else { 
       // no dict. something's wrong. 
       return 
      } 

      if Int(dict["statuscode"] as! String)! % 100 != 0 { 
       // some error from our backend 
       return 
      } 

      if let parkingProcess = dict["parkvorgang"] { 
       self.noTransactions = false 

       if let pp = parkingProcess as? [AnyObject] { 
        // more than one 
        self.loadedParkingProcesses =  MCParkingProcess.parkingProcessesFromJSON(pp) as! [ MCParkingProcess] 
       } else { 
        // only one process 
        self.loadedParkingProcesses = [MCParkingProcess( fromJSON: parkingProcess as! [String: AnyObject])] 
       } 
      } else { 
       // no transactions 
       self.noTransactions = true 
      } 

      self.fetchingData = false 

      dispatch_async(dispatch_get_main_queue(), { 
       self.tableView.reloadData() 
       self.resetContentSize() 
      }) 

      }, failed: { result, error in 

      print("failed with error: \(error)") 
      print("result: \(result)") 
      dispatch_async(dispatch_get_main_queue(), { 
       self.tableView.reloadData() 
       self.resetContentSize() 
      }) 

      self.fetchingData = false 
     }) 
     self.resetContentSize() 
    } 

    override func viewDidLoad() { 
     tableView.backgroundColor = UIColor.clearColor() 
    } 

    override func viewWillAppear(animated: Bool) { 
     performFetch() 
    } 

    override func tableView(tableView: UITableView, 
     numberOfRowsInSection section: Int) -> Int { 
      return !loggedIn || noTransactions 
       ? 1 
       : loadedParkingProcesses.count 
    } 

    func RGBColor(r: CGFloat, g: CGFloat, b: CGFloat, a: CGFloat) ->  UIColor { 
     return UIColor(red: (r/255), green: (g/255), blue: (b/255),  alpha: (a)) 
    } 

    func loadDetailsForCell(cell: MCParkingProcessCell, withParkingProcess  parkingProcess: MCParkingProcess) { 

     let locale = NSLocale.preferredLanguages()[ 0].componentsSeparatedByString("-")[0] 
     let defaults = NSUserDefaults(suiteName: "group.not.relevant.here") 
     if let username = defaults?.stringForKey("username") 
     , password = defaults?.stringForKey("password") { 

       // Load current parkingProcess costs 
       MCSoapClient.sharedInstance().loadCurrentCostsforParkingProc essesID(parkingProcess.ID, username: username, password:  password, parkingProcessStartTimeStamp: "", language:  locale, completion: { statusCode, result in 

        guard let dict = result as? [String: AnyObject] else { 
         // no dict. something's wrong. 
         return 
        } 

        if Int(dict["statuscode"] as! String)! % 100 != 0 { 
         // some error from our backend 
         return 
        } 

        var elapsedMinutes = Int(dict["dauer"] as! String)! 
        if parkingProcess.parkingZone.isAboZone { 
         let serverTime = Int(dict["serverzeit"] as! String) 
         let usedParkingTimeInSeconds = Double(serverTime!)  - parkingProcess.startedAt.timeIntervalSince1970 
         elapsedMinutes = Int(usedParkingTimeInSeconds)/60 
        } 

        // update currentCosts 
        parkingProcess.updateCurrentCostsFromJSON( dict["parkvorgang"] as? [String: AnyObject]) 
        parkingProcess.updateCurrentParkingTime(elapsedMinutes) 

        // set label text 
        let someNumber = parkingProcess.currentCosts 
        let numberFormatter: NSNumberFormatter =  NSNumberFormatter() 
        numberFormatter.numberStyle =  NSNumberFormatterStyle.DecimalStyle 
        numberFormatter.minimumFractionDigits = 2 
        numberFormatter.maximumFractionDigits = 2 
        numberFormatter.decimalSeparator = "," 
        cell.costsLabel.text = "\( numberFormatter.stringFromNumber(someNumber)!) €" 
        cell.timeLabel.text = String.formatMinutesToCorrectTime( parkingProcess.currentParkingTime.intValue) 

        }, failed: { result, error in 
        print("failed with error: \(error)") 
        print("result: \(result)") 
       }) 
     } 
    } 

    func configureRunningParkingProcessCell(cell: MCParkingProcessCell,  withParkingProcess parkingProcess: MCParkingProcess) { 
     cell.backgroundView?.backgroundColor = UIColor.clearColor() 
     cell.addressLabel.textColor = UIColor.whiteColor() 
     cell.parkingZoneIDLabel.text = parkingProcess.parkingZone.number 
     cell.addressLabel.text = parkingProcess.parkingZone.parkingZoneID 
     cell.costsLabel.text = parkingProcess.parkingZone.costs 
     cell.carPlateLabel.text = parkingProcess.usedCarPlate 
     cell.maxDurationLabel.text = NSDateFormatter.localizedStringFromDate (parkingProcess.endedAt, dateStyle:  NSDateFormatterStyle.MediumStyle, timeStyle:  NSDateFormatterStyle.ShortStyle) 
     cell.dateLabel.text = NSDateFormatter.localizedStringFromDate( parkingProcess.startedAt, dateStyle:  NSDateFormatterStyle.MediumStyle, timeStyle:  NSDateFormatterStyle.ShortStyle) 

     // starts an async request to get current costs and time 
     self.loadDetailsForCell(cell, withParkingProcess: parkingProcess) 
    } 

    override func tableView(tableView: UITableView, 
     cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

      if !loggedInInternal { 
       let cell = tableView.dequeueReusableCellWithIdentifier( CellConstants.login) as! LoginCell 
       cell.extensionContext = extensionContext 
       return cell 
      } 

      if noTransactions { 
       return tableView.dequeueReusableCellWithIdentifier( CellConstants.noTransactions)! 
      } 

      let cell = tableView.dequeueReusableCellWithIdentifier( CellConstants.parkingProcess, forIndexPath: indexPath) as!  MCParkingProcessCell 

      // empty here. will be filled with second request 
      cell.timeLabel.text = "" 
      cell.costsLabel.text = "" 

      cell.accessoryView = MSCellAccessory(type:  MSCellAccessoryType.DISCLOSURE_INDICATOR, color: RGBColor(91,  g: 181, b: 148, a: 1)) 

      configureRunningParkingProcessCell(cell, withParkingProcess:  self.loadedParkingProcesses[indexPath.row]) 

      return cell 
    } 

    override func tableView(tableView: UITableView, heightForRowAtIndexPath  indexPath: NSIndexPath) -> CGFloat { 
     return !loggedInInternal || noTransactions 
      ? 50 
      : 120 
    } 

    func resetContentSize() { 
     dispatch_async(dispatch_get_main_queue(), { 
       self.preferredContentSize = self.tableView.contentSize 
     }) 
    } 

    override func awakeFromNib() { 
     super.awakeFromNib() 
     resetContentSize() 
    } 

    override func viewDidAppear(animated: Bool) { 
     super.viewDidAppear(animated) 
     resetContentSize() 
    } 

    func performFetch() { 

     let defaults = NSUserDefaults(suiteName: "group.not.relevant.here") 

     if let username = defaults?.stringForKey("username") 
     , password = defaults?.stringForKey("password") { 
       loadData(username, password: password) 
     } else { 
      // not updated in loaddata(), so it is here 
      dispatch_async(dispatch_get_main_queue(), { 
       self.tableView.reloadData() 
       self.resetContentSize() 
      }) 
     } 
    } 

    func widgetMarginInsetsForProposedMarginInsets 
    (defaultMarginInsets: UIEdgeInsets) -> (UIEdgeInsets) { 
     return UIEdgeInsetsZero 
    } 

    func widgetPerformUpdateWithCompletionHandler(
     completionHandler: ((NCUpdateResult) -> Void)) { 

      performFetch() 

      completionHandler(NCUpdateResult.NoData) 
    } 

    override func tableView(tableView: UITableView, 
     didSelectRowAtIndexPath indexPath: NSIndexPath) { 

      if !loggedInInternal || noTransactions { 
       return 
      } 

      let urlAsString = "mcsmartparking://parkingProcess=\( loadedParkingProcesses[indexPath.row].ID)" 
      let url = NSURL(string: urlAsString) 
      self.extensionContext!.openURL(url!, completionHandler: nil) 
      tableView.deselectRowAtIndexPath(indexPath, animated: false) 
    } 
} 

而且我的錯誤:

2016-04-14 12:56:08.322 TodayExtension_Dev[11656:320804] *** Assertion failure in void _UIApplicationAssertForExtensionType(NSArray *__strong)(), /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3512.60.10/UIApplication.m:2521 
* thread #1: tid = 0x4e524, 0x00000001801d7f48 libobjc.A.dylib`objc_exception_throw, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 
    * frame #0: 0x00000001801d7f48 libobjc.A.dylib`objc_exception_throw 
    frame #1: 0x0000000180b72d20 CoreFoundation`+[NSException raise:format:arguments:] + 108 
    frame #2: 0x00000001814f81c0 Foundation`-[NSAssertionHandler handleFailureInFunction:file:lineNumber:description:] + 88 
    frame #3: 0x0000000185f76ff0 UIKit`_UIApplicationAssertForExtensionType + 484 
    frame #4: 0x0000000186143818 UIKit`_UIAlertControllerCommonInit + 112 
    frame #5: 0x0000000186143aa8 UIKit`-[UIAlertController initWithNibName:bundle:] + 104 
    frame #6: 0x0000000186143b24 UIKit`+[UIAlertController alertControllerWithTitle:message:preferredStyle:] + 100 
    frame #7: 0x0000000100133518 TodayExtension_Dev`__20+[a5987398 a2489290]_block_invoke + 64 
    frame #8: 0x00000001805bd4bc libdispatch.dylib`_dispatch_call_block_and_release + 24 
    frame #9: 0x00000001805bd47c libdispatch.dylib`_dispatch_client_callout + 16 
    frame #10: 0x00000001805c2b84 libdispatch.dylib`_dispatch_main_queue_callback_4CF + 1844 
    frame #11: 0x0000000180b28df0 CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 
    frame #12: 0x0000000180b26c58 CoreFoundation`__CFRunLoopRun + 1628 
    frame #13: 0x0000000180a50e80 CoreFoundation`CFRunLoopRunSpecific + 384 
    frame #14: 0x0000000182338088 GraphicsServices`GSEventRunModal + 180 
    frame #15: 0x0000000185d3a0c8 UIKit`UIApplicationMain + 204 
    frame #16: 0x0000000180814ce0 libxpc.dylib`_xpc_objc_main + 784 
    frame #17: 0x00000001808169dc libxpc.dylib`xpc_main + 200 
    frame #18: 0x0000000181633d60 Foundation`-[NSXPCListener resume] + 172 
    frame #19: 0x0000000187e72c48 PlugInKit`-[PKService run] + 544 
    frame #20: 0x0000000187e728dc PlugInKit`+[PKService main] + 56 
    frame #21: 0x0000000187e72c6c PlugInKit`+[PKService _defaultRun:arguments :] + 20 
    frame #22: 0x0000000181446058 libextension.dylib`NSExtensionMain + 64 
    frame #23: 0x00000001805ee8b8 libdyld.dylib`start + 4 
* thread #1: tid = 0x4e524, 0x00000001801ca7d4 libc++abi.dylib`__cxa_throw, queue = 'com.apple.main-thread', stop reason = breakpoint 1.2 
    * frame #0: 0x00000001801ca7d4 libc++abi.dylib`__cxa_throw 
    frame #1: 0x00000001801d8094 libobjc.A.dylib`objc_exception_throw + 332 
    frame #2: 0x0000000180b72d20 CoreFoundation`+[NSException raise:format: arguments:] + 108 
    frame #3: 0x00000001814f81c0 Foundation`-[NSAssertionHandler  handleFailureInFunction:file:lineNumber:description:] + 88 
    frame #4: 0x0000000185f76ff0 UIKit`_UIApplicationAssertForExtensionType +  484 
    frame #5: 0x0000000186143818 UIKit`_UIAlertControllerCommonInit + 112 
    frame #6: 0x0000000186143aa8 UIKit`-[UIAlertController initWithNibName: bundle:] + 104 
    frame #7: 0x0000000186143b24 UIKit`+[UIAlertController  alertControllerWithTitle:message:preferredStyle:] + 100 
    frame #8: 0x0000000100133518 TodayExtension_Dev`__20+[a5987398  a2489290]_block_invoke + 64 
    frame #9: 0x00000001805bd4bc libdispatch. dylib`_dispatch_call_block_and_release + 24 
    frame #10: 0x00000001805bd47c libdispatch.dylib`_dispatch_client_callout  + 16 
    frame #11: 0x00000001805c2b84 libdispatch. dylib`_dispatch_main_queue_callback_4CF + 1844 
    frame #12: 0x0000000180b28df0 CoreFoundation `__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 
    frame #13: 0x0000000180b26c58 CoreFoundation`__CFRunLoopRun + 1628 
    frame #14: 0x0000000180a50e80 CoreFoundation`CFRunLoopRunSpecific + 384 
    frame #15: 0x0000000182338088 GraphicsServices`GSEventRunModal + 180 
    frame #16: 0x0000000185d3a0c8 UIKit`UIApplicationMain + 204 
    frame #17: 0x0000000180814ce0 libxpc.dylib`_xpc_objc_main + 784 
    frame #18: 0x00000001808169dc libxpc.dylib`xpc_main + 200 
    frame #19: 0x0000000181633d60 Foundation`-[NSXPCListener resume] + 172 
    frame #20: 0x0000000187e72c48 PlugInKit`-[PKService run] + 544 
    frame #21: 0x0000000187e728dc PlugInKit`+[PKService main] + 56 
    frame #22: 0x0000000187e72c6c PlugInKit`+[PKService _defaultRun:arguments :] + 20 
    frame #23: 0x0000000181446058 libextension.dylib`NSExtensionMain + 64 
    frame #24: 0x00000001805ee8b8 libdyld.dylib`start + 4 
2016-04-14 12:56:08.401 TodayExtension_Dev[11656:320804] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Feature not available in extensions of type com.apple.widget-extension' 
*** First throw call stack: 
(0x180b72e50 0x1801d7f80 0x180b72d20 0x1814f81c0 0x185f76ff0 0x186143818 0x186143aa8 0x186143b24 0x100133518 0x1805bd4bc 0x1805bd47c 0x1805c2b84 0x180b28df0 0x180b26c58 0x180a50e80 0x182338088 0x185d3a0c8 0x180814ce0 0x1808169dc 0x181633d60 0x187e72c48 0x187e728dc 0x187e72c6c 0x181446058 0x1805ee8b8) 
libc++abi.dylib: terminating with uncaught exception of type NSException 

和碰撞吸能的截圖:

enter image description here

多:

dlopen(/System/Library/Frameworks/CoreText.framework/CoreText, 0x00000002) 
    dlopen(/System/Library/Frameworks/CoreText.framework/CoreText) ==> 0xffeeddcc00007000 
dlsym(0xffeeddcc00007000, CTFontCreateWithGraphicsFont) 
    dlsym(0xffeeddcc00007000, CTFontCreateWithGraphicsFont) ==> 0x183a68cf4 
dlsym(0xffeeddcc00007000, CTFontGetGlyphsAndAdvancesForCharacterRange) 
    dlsym(0xffeeddcc00007000, CTFontGetGlyphsAndAdvancesForCharacterRange) ==> 0x183a79754 
dlsym(0xffeeddcc00007000, CTFontCopyAvailableTables) 
    dlsym(0xffeeddcc00007000, CTFontCopyAvailableTables) ==> 0x183abe2b8 
dlsym(0xffeeddcc00007000, CTFontCopyCharacterSet) 
    dlsym(0xffeeddcc00007000, CTFontCopyCharacterSet) ==> 0x183a6c2dc 
dlsym(0xffeeddcc00007000, CTFontCopyGraphicsFont) 
    dlsym(0xffeeddcc00007000, CTFontCopyGraphicsFont) ==> 0x183a67acc 
dlsym(0xffeeddcc00007000, CTFontGetUnitsPerEm) 
    dlsym(0xffeeddcc00007000, CTFontGetUnitsPerEm) ==> 0x183a8fe20 
dlsym(0xffeeddcc00007000, CTFontGetAscent) 
    dlsym(0xffeeddcc00007000, CTFontGetAscent) ==> 0x183a6a380 
dlsym(0xffeeddcc00007000, CTFontGetDescent) 
    dlsym(0xffeeddcc00007000, CTFontGetDescent) ==> 0x183a6c020 
dlsym(0xffeeddcc00007000, CTFontGetLeading) 
    dlsym(0xffeeddcc00007000, CTFontGetLeading) ==> 0x183a6c0bc 
dlsym(0xffeeddcc00007000, CTFontIsLastResort) 
    dlsym(0xffeeddcc00007000, CTFontIsLastResort) ==> 0x183a6c274 
dlsym(0xffeeddcc00007000, CTFontGetSymbolicTraits) 
    dlsym(0xffeeddcc00007000, CTFontGetSymbolicTraits) ==> 0x183a84a30 
dlsym(0xffeeddcc00007000, CTFontGetSize) 
    dlsym(0xffeeddcc00007000, CTFontGetSize) ==> 0x183a65118 
dlsym(0xffeeddcc00007000, CTFontCopyFamilyName) 
    dlsym(0xffeeddcc00007000, CTFontCopyFamilyName) ==> 0x183a6a088 
dlsym(0xffeeddcc00007000, CTFontCopyFullName) 
    dlsym(0xffeeddcc00007000, CTFontCopyFullName) ==> 0x183a8febc 
dlsym(0xffeeddcc00007000, CTFontSwapDefaultSize) 
    dlsym(0xffeeddcc00007000, CTFontSwapDefaultSize) ==> 0x183a65114 
dlsym(0xffeeddcc00007000, CTFontGetClientObject) 
    dlsym(0xffeeddcc00007000, CTFontGetClientObject) ==> 0x183a651a0 
dlsym(0xffeeddcc00007000, CTFontSetClientObject) 
    dlsym(0xffeeddcc00007000, CTFontSetClientObject) ==> 0x183a698a4 
dlsym(0xffeeddcc00007000, CTFontDescriptorCreateForUIType) 
    dlsym(0xffeeddcc00007000, CTFontDescriptorCreateForUIType) ==> 0x183a77ac0 
dlsym(0xffeeddcc00007000, CTFontDescriptorCreateCopyWithSymbolicTraits) 
    dlsym(0xffeeddcc00007000, CTFontDescriptorCreateCopyWithSymbolicTraits) ==> 0x183a828d0 
dlsym(0xffeeddcc00007000, CTFontCreateWithFontDescriptorAndOptions) 
    dlsym(0xffeeddcc00007000, CTFontCreateWithFontDescriptorAndOptions) ==> 0x183abc2c8 
dlsym(0xffeeddcc00007000, CTFontCopyFontDescriptor) 
    dlsym(0xffeeddcc00007000, CTFontCopyFontDescriptor) ==> 0x183a616f0 
dlsym(0xffeeddcc00007000, CTFontDescriptorIsSystemUIFont) 
    dlsym(0xffeeddcc00007000, CTFontDescriptorIsSystemUIFont) ==> 0x183a6a06c 
dlsym(0xffeeddcc00007000, CTFontManagerInstalledFontsChanged) 
    dlsym(0xffeeddcc00007000, CTFontManagerInstalledFontsChanged) ==> 0x183b35e04 
dlsym(0xffeeddcc00007000, CTFontRemoveFromCaches) 
    dlsym(0xffeeddcc00007000, CTFontRemoveFromCaches) ==> 0x183abf878 
dlopen(/System/Library/PrivateFrameworks/UIFoundation.framework/UIFoundation, 0x00000002) 
    dlopen(/System/Library/PrivateFrameworks/UIFoundation.framework/UIFoundation) ==> 0xffeeddcc00009000 
dlsym(0xffeeddcc00009000, UINewFont) 
    dlsym(0xffeeddcc00009000, UINewFont) ==> 0x186506a24 
dlopen(/System/Library/PrivateFrameworks/FontServices.framework/libGSFontCache.dylib, 0x00000002) 
dyld: loaded: /System/Library/PrivateFrameworks/FontServices.framework/libGSFontCache.dylib 
dyld_image_path_containing_address(0x1958cc000) 
dlopen(/System/Library/PrivateFrameworks/FontServices.framework/libGSFontCache.dylib, 0x00000010) 
    dlopen(/System/Library/PrivateFrameworks/FontServices.framework/libGSFontCache.dylib) ==> 0xffeeddcc0002d400 
    dlopen(/System/Library/PrivateFrameworks/FontServices.framework/libGSFontCache.dylib) ==> 0xffeeddcc0002d400 
dlsym(0xffeeddcc0002d400, GSFontCacheGetDictionary) 
    dlsym(0xffeeddcc0002d400, GSFontCacheGetDictionary) ==> 0x1958cd1f0 
dlopen(/System/Library/Frameworks/UIKit.framework/UIKit, 0x00000002) 
    dlopen(/System/Library/Frameworks/UIKit.framework/UIKit) ==> 0xffeeddcc00009100 
dlsym(0xffeeddcc00009100, _UIApplicationUsesAlternateUI) 
    dlsym(0xffeeddcc00009100, _UIApplicationUsesAlternateUI) ==> 0x186810224 
dlsym(0xffeeddcc00009100, _UIApplicationLinkedOnOrAfter) 
    dlsym(0xffeeddcc00009100, _UIApplicationLinkedOnOrAfter) ==> 0x186563cc0 
dlopen(/usr/lib/libAccessibility.dylib, 0x00000005) 
    dlopen(/usr/lib/libAccessibility.dylib) ==> 0xffeeddcc00008500 
dlsym(0xffeeddcc00008500, _AXSEnhanceTextLegibilityEnabled) 
    dlsym(0xffeeddcc00008500, _AXSEnhanceTextLegibilityEnabled) ==> 0x184a709d8 
dlopen(/System/Library/Frameworks/UIKit.framework/UIKit, 0x00000002) 
    dlopen(/System/Library/Frameworks/UIKit.framework/UIKit) ==> 0xffeeddcc00009100 
dlopen(/System/Library/PrivateFrameworks/FontServices.framework/libFontParser.dylib, 0x00000005) 
    dlopen(/System/Library/PrivateFrameworks/FontServices.framework/libFontParser.dylib) ==> 0xffeeddcc00006d00 
dlsym(0xffeeddcc00006d00, FPFontCreateFontsWithPath) 
    dlsym(0xffeeddcc00006d00, FPFontCreateFontsWithPath) ==> 0x1838f4b68 
dlsym(0xffeeddcc00006d00, FPFontRetain) 
    dlsym(0xffeeddcc00006d00, FPFontRetain) ==> 0x1838f7f30 
dlsym(0xffeeddcc00006d00, FPFontCopyTable) 
    dlsym(0xffeeddcc00006d00, FPFontCopyTable) ==> 0x1838f81e0 
dlsym(0xffeeddcc00006d00, FPFontCopyTable) 
    dlsym(0xffeeddcc00006d00, FPFontCopyTable) ==> 0x1838f81e0 
dlsym(0xffeeddcc00006d00, FPFontCopyNames) 
    dlsym(0xffeeddcc00006d00, FPFontCopyNames) ==> 0x1838f88ec 
dlsym(0xffeeddcc00006d00, FPFontGetPostScriptName) 
    dlsym(0xffeeddcc00006d00, FPFontGetPostScriptName) ==> 0x1838f8bd4 
dlsym(0xffeeddcc00006d00, FPFontGetNumberOfGlyphs)... 
dlsym(0xffeeddcc00006d00, FPFontIsBitmapOnly) 
    dlsym(0xffeeddcc00006d00, FPFontIsBitmapOnly) ==> 0x1838fd100 
dlsym(0xffeeddcc00006d00, FPFontGetGlyphIdealAdvanceWidth) 
    dlsym(0xffeeddcc00006d00, FPFontGetGlyphIdealAdvanceWidth) ==> 0x1838fd28c 
dlsym(0xffeeddcc00006d00, FPFontGetUnitsPerEm) 
    dlsym(0xffeeddcc00006d00, FPFontGetUnitsPerEm) ==> 0x1838fa254 
dlopen(/System/Library/Frameworks/UIKit.framework/UIKit, 0x00000002) 
    dlopen(/System/Library/Frameworks/UIKit.framework/UIKit) ==> 0xffeeddcc00009100 
dlsym(0xffeeddcc00009100, UIGraphicsGetCurrentContext) 
    dlsym(0xffeeddcc00009100, UIGraphicsGetCurrentContext) ==> 0x1865718e8 
dlsym(0xffeeddcc00006d00, FPFontIsBitmapOnly) 
    dlsym(0xffeeddcc00006d00, FPFontIsBitmapOnly) ==> 0x1838fd100 
dlsym(0xffeeddcc00006d00, FPFontCopyGlyphPath) 
    dlsym(0xffeeddcc00006d00, FPFontCopyGlyphPath) ==> 0x1838fdbb0 
dlopen(/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics, 0x00000009) 
    dlopen(/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics) ==> 0xffeeddcc00004000 
dlsym(0xffeeddcc00004000, CGPathCreateMutable) 
    dlsym(0xffeeddcc00004000, CGPathCreateMutable) ==> 0x1829117fc 
dlsym(0xffeeddcc00004000, CGPathRelease) 
    dlsym(0xffeeddcc00004000, CGPathRelease) ==> 0x182912294 
dlsym(0xffeeddcc00004000, CGPathMoveToPoint) 
    dlsym(0xffeeddcc00004000, CGPathMoveToPoint) ==> 0x182912380 
dlsym(0xffeeddcc00004000, CGPathAddLineToPoint) 
    dlsym(0xffeeddcc00004000, CGPathAddLineToPoint) ==> 0x182912440 
dlsym(0xffeeddcc00004000, CGPathAddCurveToPoint) 
    dlsym(0xffeeddcc00004000, CGPathAddCurveToPoint) ==> 0x182912630 
dlsym(0xffeeddcc00004000, CGPathAddQuadCurveToPoint) 
    dlsym(0xffeeddcc00004000, CGPathAddQuadCurveToPoint) ==> 0x18291252c 
dlsym(0xffeeddcc00004000, CGPathCloseSubpath) 
    dlsym(0xffeeddcc00004000, CGPathCloseSubpath) ==> 0x18291274c 
dlsym(0xffeeddcc00004000, CGFontIndexMapAddRange) 
    dlsym(0xffeeddcc00004000, CGFontIndexMapAddRange) ==> 0x1829c53a4 
dlsym(0xffeeddcc00004000, CGPathCreateByNormalizingGlyphPath) 
    dlsym(0xffeeddcc00004000, CGPathCreateByNormalizingGlyphPath) ==> 0x182913c64 
dlsym(0xffeeddcc00004000, CGPathCreateCopyByTransformingPath) 
    dlsym(0xffeeddcc00004000, CGPathCreateCopyByTransformingPath) ==> 0x182911cc4 
dlsym(0xffeeddcc00004000, CGPathRetain) 
    dlsym(0xffeeddcc00004000, CGPathRetain) ==> 0x182912268 
dlsym(0xffeeddcc00004000, CGPathIsEmpty) 
    dlsym(0xffeeddcc00004000, CGPathIsEmpty) ==> 0x18291353c 
dlsym(0xffeeddcc00004000, CGPathGetBoundingBox) 
    dlsym(0xffeeddcc00004000, CGPathGetBoundingBox) ==> 0x1829139dc 
dyld_image_header_containing_address(0x181f15cf4) 
_dyld_get_image_slide(0x181ce8000) 
_dyld_get_image_slide(0x181ce8000) 
2016-06-13 15:22:33.862 TodayExtension_Dev[5335:67225] *** Assertion failure in void _UIApplicationAssertForExtensionType( NSArray *__strong)(), /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3512.60.12/UIApplication.m:2521 
dyld_image_header_containing_address(0x181614e32) 
_dyld_get_image_slide(0x1812dc000) 
_dyld_get_image_slide(0x1812dc000) 
2016-06-13 15:22:33.863 TodayExtension_Dev[5335:67225] *** Terminating app due to uncaught exception  'NSInternalInconsistencyException', reason: 'Feature not available in extensions of type com.apple.widget-extension' 
*** First throw call stack: 
(0x181406db0 0x180a6bf80 0x181406c80 0x181d8c1c0 0x18680afb0 0x1869d77d8 0x1869d7a68 0x1869d7ae4 0x1000b2f68 0x180e514bc  0x180e5147c 0x180e56b84 0x1813bcd50 0x1813babb8 0x1812e4c50 0x182bcc088 0x1865ce088 0x1810a8ce0 0x1810aa9dc 0x181ec7d60  0x188706c48 0x1887068dc 0x188706c6c 0x181cda058 0x180e828b8) 
libc++abi.dylib: terminating with uncaught exception of type NSException 

回答

1

從您的堆棧跟蹤,它看起來像你想顯示UIAlertController:

frame #6: 0x0000000186143b24 UIKit`+[UIAlertController alertControllerWithTitle:message:preferredStyle:] + 100 
frame #7: 0x0000000100133518 TodayExtension_Dev`__20+[a5987398 a2489290]_block_invoke + 64 

UIAlertController有模式呈現在整個屏幕上,和你的widget沒有訪問整個屏幕,所以他們不被允許在今日小部件。

我認爲您需要深入瞭解警報顯示的原因。也許你的SOAP客戶端的副作用?

+0

我只是想看看,並附上一個設備和警報已從堆棧跟蹤消失,但仍然崩潰。必須有另一個原因... – RyuX51

+0

什麼是現在的堆棧跟蹤? –

+0

我已經在我的問題結尾添加了它。 – RyuX51