如果我的retainCount为4则对iphone不利

ram*_*ram -1 iphone objective-c

更新代码

- (void) searchBarSearchButtonClicked:(UISearchBar *)theSearchBar {
    mytimer3=[NSTimer scheduledTimerWithTimeInterval:.03 target:self selector:@selector(show) userInfo:nil repeats:NO];


        NSLog(@" search is down");  



    //////////// rnd to hold keyboard





     //ovController.view.backgroundColor = [UIColor grayColor];


     self.tableView.scrollEnabled = NO;




     UserText=[self.searchDisplayController.searchBar text];
     myInt= UserText.length;
     //int myInt= [save length];



    // NSString *myStringPrt1 = [[NSString alloc] init];
    // NSString *myStringPrt2 = [[NSString alloc] init];


     if(UserText.length>3)

     {
     //[ovController.view removeFromSuperview];
     //[tableView reloadData];
     url=nil;
    // myStringPrt1=@"http://find.php?keyword=";
    NSString * myStringPrt2=UserText;
    // myStringPrt1=[myStringPrt1 stringByAppendingString:myStringPrt2];
    // myStringPrt1 = [myStringPrt1 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    // loadingView.hidden=NO;




         NSString *outputString = [[NSString stringWithString:@"http://find.php?keyword="] stringByAppendingString: UserText];
         outputString = [outputString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];


         NSLog(@"My string is  now =  %@", outputString);


     url=   [NSURL URLWithString:outputString];



     NSXMLParser *xmlParser = [[[NSXMLParser alloc] initWithContentsOfURL:url] autorelease];

     //Initialize the delegate.
     XMLParser *parser = [[[XMLParser alloc] initXMLParser]autorelease];

     //Set delegate
     [xmlParser setDelegate:parser];

     //Start parsing the XML file.
     BOOL success = [xmlParser parse];
     if(success)
     {



         [super viewDidLoad];




     [self searchTableView];    
         mytimer4=[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(wipe) userInfo:nil repeats:NO];
     }


     }
Run Code Online (Sandbox Code Playgroud)

}

Ren*_*ers 5

是的,你到处都有内存泄漏:

NSString *myStringPrt1 = [[NSString alloc] init];
NSString *myStringPrt2 = [[NSString alloc] init];

url=nil;

myStringPrt1=@"http://wap?keyword="; //MEMORY LEAK, this will assign a new string to myStringPrt1, without releasing the first one
myStringPrt2=UserText; //MEMORY LEAK, this will assign a new string to myStringPrt2, without releasing the first one

myStringPrt1=[myStringPrt1 stringByAppendingString:myStringPrt2]; //MEMORY LEAK, this will assing an autoreleased string the myStringPrt1, without releasing the old one first.
myStringPrt1 = [myStringPrt1 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; //MEMORY LEAK, this will assing an autoreleased string the myStringPrt1, without releasing the old one first.
Run Code Online (Sandbox Code Playgroud)

我建议你先阅读Kubi指出的内存管理指南.或者,如果你感到懒惰,请使用:

NSString *outputString = [[NSString stringWithString:@"http://wap?keyword="] stringByAppendingString: UserText];
outputString = [outputString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)

或这个:

NSString *outputString = [NSString stringWithFormat:@"http://wap?keyword=%@",UserText];
outputString = [outputString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)