I have an app that updates the interface based on the results of an NSURL request. I removed set it so request when my app comes in the foreground, and only if the current view controller is called "Profailwukantrolr"
My problem is that whenever I Background When I bring the app back, the interface locks for a few seconds. I am trying to fully understand the main / background thread, but I'm not sure that the app What can I do to stay Any help would be great! Thanks!
Load method in my view: My application returns active method then: Finally, in my updated update location mode, I get the distance between the user and the location. If the result is equal to 1, then I update the interface to show different buttons. New Method: Your core locks representative methods (for example " To fix your problem, you should modify your UI on the main thread. One of the easiest foundation APIs you can use is: To fix your problem, move your button-code to a different method and type "
- (zero) viewDidoadload {[Super Viewedload]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector (appReturnsActive) Name: UIApplicationDidBecomeActiveNotification object: nil]; // additional code}
- (zero) appReturnsActive {[myTimer cancellation] ; MyTimer = Zero; // only view the updated display if the playback disappears view controller UIViewController * currentVC = self.navigationController.visibleViewController; NSString * name = NSStringFromClass ([currentVC class]); If ([name isEqualToString: @ "profileviewer"]) {[activity indicator startup]; [ACTIVE DIRECTOR TWO STARTING OUT]; LocationManagerProfile.delegate = self; LocationManagerProfile.desiredAccuracy = kCLLocationAccuracyBest; [Start LocationManagerProfileMy location]; }}
- (minus) locationManager: This is where the interface is frozen (CLLocationManager *) manager didUpdateToLocation: (CLLocation *) newLocation fromLocation: (CLLocation *) oldLocation {CLLocation * Current Location = New location; If (current location! = Zero) {[self displaying onMineTrade: @Selector (buttonupdate :) with object: tap waitingToone: no]; }}
- (minus) buttonUpdate {NSString * userLongitude = [NSString stringWithFormat: @ "% .8f ", current location.Cordinate. Langat]; NSString * userLatitude = [NSString stringWithFormat: @ "% .8f", current location. Coordinate.latitude]; [LocationManagerProfile stopUpdatingLocation]; NSString * Transfers = [[NSUserDefaults Standard Standard Defaults] StringForki: @ "Saved Latitude"]; NSString * Transfers = [[NSUserDefaults standard standard defaults] StringForki: @ "saved length"]; Nsstring * Distansurl = [Nsstring Stringvitformt: @ "Actiteepi://wwwkvebsaitkcom/pejkphp Ltl =% @ & amp; Lonl =% @ & amp; Lt2 =% @ & amp; Lon2 =% @?" , UserLatitude, User Lingitude, Place Latitude, Place Lengthy]; NSDTA * distanceURL reference = [NSDATA DATAVITY CONTENT OFF URL: [NSL URL URLRstring: Distance]]; NSString * distanceInFeet = [[NSString alloc] initWithData: distanceURLResult encoding: NSUTF8StringEncoding]; If ([distanceInFeet isEqualToString: @ "1"]) {UIBarButtonItem * btnGo = [[UIBarButtonItem alloc] initWithTitle: @ "button 1" style: UIBarButtonItemStyleBordered goal: self action: @selector (actionTwo)]; Self.navigationItem.rightBarButtonItem = btnGo; UIBarButtonItem * btnGoTwo = [[UIBarButtonItem alloc] initWithTitle: @ "button two" style: UIBarButtonItemStyleBordered goal: self action: @selector (actionOne)]; Self.navigationItem.rightBarButtonItem = btnGoTwo; Self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects: btnGo, btnGoTwo, zero]; }}
done UpdateToLocation < / Code> ", etc.) In the background, all the secondary threads are happening.
ExhibitoronMineTrade "from the old (being called on a separate thread through the CoreLocation delegation protocol) and you should be good to go.
No comments:
Post a Comment