xcode - CoreAnimation uncommitted CATranaction NSComboBox -
i populating nscombobox data function below. after populated , try scroll through items catransaction warning. can shed light on why happening , can fix it? have figured out may have changing ui of combobox on thread other main thread after stuck.
func getallrecords() { catransaction.begin() let url = nsurl(string: "http://url.php") let task = nsurlsession.sharedsession().datataskwithurl(url!) { (data, response, error) in var d = nsstring(data: data, encoding: nsutf8stringencoding) var arr = d!.componentsseparatedbystring("<") // spliting incoming string "<" operator because before operator our required data , storing in array var dataweneed:nsstring = arr[0] as! nsstring // arr[0] data before "<" operator , arr[1] no use if let data = nsjsonserialization.jsonobjectwithdata(dataweneed.datausingencoding(nsutf8stringencoding)!, options: nsjsonreadingoptions.mutablecontainers, error: nil) as? nsarray { dd in data { var name : string = dd["name"]! as! string var email : string = dd["email"]! as! string //println("name: \(name)") //println("email: \(email)") self.usercombobox.additemswithobjectvalues([name]) } } } task.resume() catransaction.commit() }
here warning getting debug area.
2015-06-14 13:54:04.756 green time clock[2150:738395] unexpected outstanding background catransaction coreanimation: warning, encountered thread uncommitted catransaction; created by: 0 quartzcore 0x00007fff9ab4d6c2 _zn2ca11transaction4pushev + 312 1 quartzcore 0x00007fff9ab689a8 _zn2ca11transaction15ensure_implicitev + 276 2 quartzcore 0x00007fff9ab4d842 _zn2ca11transaction9set_valueej12_cavaluetypepkv + 40 3 quartzcore 0x00007fff9ab4f452 +[catransaction setdisableactions:] + 38 4 appkit 0x00007fff921a1b8c -[nsview(nsinternal) _updatelayergeometryfromview] + 389 5 appkit 0x00007fff921c7d09 -[nsview setframesize:] + 1129 6 appkit 0x00007fff921c789a -[nscontrol setframesize:] + 77 7 appkit 0x00007fff922e3891 -[nstableview setframesize:] + 256 8 appkit 0x00007fff922e35f9 -[nstableview _tileandredisplayall] + 180 9 green time clock 0x00000001000042d6 _tffc16green_time_clock14viewcontroller13getallrecordsfs0_ft_t_u_ftgsqcso6nsdata_gsqcso13nsurlresponse_gsqcso7nserror__t_ + 2886 10 green time clock 0x0000000100004463 _ttrxfo_ogsqcso6nsdata_ogsqcso13nsurlresponse_ogsqcso7nserror__dt__xfo_itgsqs__gsqs0__gsqs1____it__ + 51 11 green time clock 0x0000000100001e31 _tpa__ttrxfo_ogsqcso6nsdata_ogsqcso13nsurlresponse_ogsqcso7nserror__dt__xfo_itgsqs__gsqs0__gsqs1____it__ + 81 12 green time clock 0x0000000100004493 _ttrxfo_itgsqcso6nsdata_gsqcso13nsurlresponse_gsqcso7nserror___it__xfo_ogsqs__ogsqs0__ogsqs1___dt__ + 35 13 green time clock 0x00000001000044fa _ttrxfo_ogsqcso6nsdata_ogsqcso13nsurlresponse_ogsqcso7nserror__dt__xfdcb_dgsqs__dgsqs0__dgsqs1___dt__ + 90 14 cfnetwork 0x00007fff8c09cba2 __49-[__nscflocalsessiontask _task_onqueue_didfinish]_block_invoke + 157 15 foundation 0x00007fff9a75f7e8 __nsblockoperation_is_calling_out_to_a_block__ + 7
not sure root issue is, found warning when updating string value nstextview object , resolved following code now.
just make sure updating process handled in main thread.
// link: nstextstorage limitation on size , frequency of updates
dispatch_block_t block = ^ { nsattributedstring *attributestring = [[nsattributedstring alloc] initwithstring:[nsstring stringwithformat:@"%@\n", strlog]]; nstextstorage* store = [_textviewoutputlog textstorage]; [store beginediting]; [store appendattributedstring:attributestring]; [store endediting]; [_textviewoutputlog scrollrangetovisible:nsmakerange([[_textviewoutputlog string] length], 0)]; }; if ([nsthread ismainthread]) { block(); } else { dispatch_async(dispatch_get_main_queue(), block); }
Comments
Post a Comment