Είναι MKMapView διαρροές

ψήφοι
1

Όπως και στην ερώτησή μου «Αφαίρεση MKMapViewσχολιασμοί προκαλεί διαρροές.» Έχω ανακαλύψει ότι αν δημιουργήσετε ένα έργο θέα βάση, προσθέστε UISearchBarκαι MKMapViewσε ΕΕΦ της προβολής, σύρμα μέχρι οι σύνεδροι (δεν είμαι να δημιουργεί μεθόδους, καθώς δεν χρειάζεται πραγματικά να κάνει τίποτα για να προκαλέσει τις διαρροές), σύνδεση στο η MapKit και ανάψουν το έργο, τότε απλά κάνοντας κλικ στα UISearchBarαίτια ένας 1k + διαρροή. Αυτό δεν συμβαίνει αν δεν έχετε τόσο UISearchBarκαι MKMapViewσε μια προβολή. Έχω τα ίδια θέματα κατά τη δημιουργία των απόψεων από τον κώδικα. Σκέφτηκα μια ΕΕΦ μπορεί να συμπεριφέρονται διαφορετικά, αλλά δεν το κάνει.

Είναι η MKMapViewδιαρροή, ή κάνω κάτι λάθος.

Για να αναπαράγουν το θέμα με κωδικό δοκιμάστε την παρακάτω κώδικα - Θα δημιουργήσει ένα νέο έργο «προβολή based εφαρμογή»

TestMapViewFromCodeViewController.h

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>

@interface TestMapViewFromCodeViewController : UIViewController {
    UISearchBar *searchBar;
    MKMapView *mapView;

}

@property (nonatomic, retain) MKMapView *mapView;
@property (nonatomic, retain) UISearchBar *searchBar;


@end

TestMapViewFromCodeViewController.m

- (void)viewDidLoad {
    [super viewDidLoad];
    UISearchBar * tmpSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0,0.0,self.view.frame.size.width,40.0)];
    [self.view addSubview:tmpSearchBar];
    [self setSearchBar:tmpSearchBar];
    [tmpSearchBar release];

    MKMapView *tmpMapView=[[MKMapView alloc] initWithFrame:CGRectMake(0.0,0.0,self.view.frame.size.width,self.view.frame.size.height)];
    tmpMapView.showsUserLocation=FALSE;
    [self.view insertSubview:tmpMapView atIndex:0];
    [self setMapView:tmpMapView];
    [tmpMapView release];
}


- (void)dealloc {
    [mapView release];
    [searchBar release];
    [super dealloc];
}

Αν και έχω διατηρήσει τα subviews με MapView και searchbar, αυτό είναι μάλλον περιττό να αναπαράγουν το πρόβλημα.

Κατά τον έλεγχο αυτόν τον κωδικό πριν από την δημοσίευση εδώ έχω μόνο παρατήρησα ότι αυτή η διαρροή δεν συμβαίνει στον προσομοιωτή - μόνο στο κινητό μου ...

Δημοσιεύθηκε 03/09/2009 στις 14:28
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
2

Ναί.

Υπάρχει ένα γνωστό διαρροές για MKMapViews 3.0 του. Η διαρροή παρουσιάζεται όταν deallocate το MKMapView Αυτό είναι σταθερό σε μεταγενέστερες εκδόσεις. Η λύση είναι να έχουμε μια ενιαία MKMapView και να επαναχρησιμοποιηθεί.

https://devforums.apple.com/message/129740#129740

Απαντήθηκε 04/11/2009 στις 08:28
πηγή χρήστη


Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more