- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
表格 View 工作正常,但是当我离开 View 并第二次返回时,出现内存泄漏。可能 viewDidLoad 中的某些内容不确定。
我正在运行泄漏工具并收到以下通知:
Leaked Object # Address Size Responsible Library Responsible Frame
NSCFString 631 < multiple > 20192 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8339c80 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8339af0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8339960 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x83397d0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8339640 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x83394b0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8339320 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8339190 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8339000 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8338e70 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8338ce0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8338b50 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x83389c0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8338830 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x83386a0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8338510 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8338380 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x83381f0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8338060 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8337ed0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8337d40 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8337bb0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8337a20 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x83378b0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8337720 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8337590 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8337400 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8337270 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x83370b0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8336f40 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8336dd0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8336c50 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8336ae0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8336960 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x83367e0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8336660 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x83364f0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8336360 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x83361e0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8336070 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8335ee0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8335d60 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8335be0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8335a60 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x83358f0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8335760 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8335470 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8335180 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8334e80 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8334d10 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8334b90 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8334a10 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8334890 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x83344a0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8334310 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8334180 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8333e10 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8333c80 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8333af0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8333970 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8333800 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8333670 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8323220 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8320160 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x831eef0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x831e5e0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x831d710 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8312e80 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x83119c0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x830e1c0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x83055c0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8031900 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8031770 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8031470 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8031300 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8031190 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8031010 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8030ea0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8030d20 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8030ba0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8030a20 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x80308b0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8030720 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x80305a0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x80302a0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802ffa0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802fe80 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802fb90 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802fa20 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802f8b0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802f730 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802f5c0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802f2d0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802ef10 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802ed80 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802ebd0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802ea50 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802e8e0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802cbe0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802cb40 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802c9c0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802c840 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802c6d0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802c560 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802c3e0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802c270 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802c100 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802bf90 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802bdf0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802bdd0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802bc60 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802bb90 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802b9e0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x802b870 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8028080 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x8027fe0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6f5e0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6f450 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6f150 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6efd0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6ee50 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6ece0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6eb60 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6e9e0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6e870 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6e700 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6e580 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6e400 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6e280 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6e100 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6df80 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6de00 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6dc80 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6db10 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6d930 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6d7c0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6d640 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6d420 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6d3b0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6d220 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6d090 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6cf00 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6cd70 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6cbe0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6ca50 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6c8c0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6c730 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6c5a0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6c410 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6c280 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6c0f0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6bf60 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6be10 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6bca0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6bb30 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6b9c0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6b850 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6b6e0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6b550 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6b3c0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6b230 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6b0c0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6af50 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6ae00 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6ac90 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6ab20 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6a9d0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6a880 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6a6f0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6a560 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6a3e0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6a260 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e6a0e0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e69f50 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e69de0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e69c60 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e69af0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e69980 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e69800 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e69680 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e69500 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e69380 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e69200 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e69090 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e68f20 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e68da0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e68c30 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e68ab0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e68930 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e687b0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e68640 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e684c0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e68340 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e681d0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e68040 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e67ec0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e67d40 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e67bc0 32 Foundation -[NSCFString copyWithZone:]
NSCFString 0x4e67a50 32 Foundation -[NSCFString copyWithZone:]
当我在扩展 View 中单击第一行时,我得到:
14 CFNetwork URLConnectionClient::_clientDidFinishLoading(URLConnectionClient::ClientConnectionEventQueue*)
15 CFNetwork URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent, XClientEventParams>*, long)
16 CFNetwork URLConnectionClient::processEvents()
17 CFNetwork MultiplexerSource::perform()
代码如下:
#import "AddRemoteRecipientsTableViewController.h"
#import "MyManager.h"
#import "FaxRecipient.h"
@implementation AddRemoteRecipientsTableViewController
@synthesize lastIndexPath;
@synthesize delegate=_delegate;
@synthesize faxRecipient;
/*
-(IBAction) btnSave{
}
-(IBAction) btnDone{
}
*/
-(void) loadRemoteRecipients{
activityIndicator.startAnimating;
[remoteRecipientItems removeAllObjects];
[[self tableView] reloadData];
NSString * uName=[[NSUserDefaults standardUserDefaults]objectForKey:@"userNameKey"];
NSString * pWord = [[NSUserDefaults standardUserDefaults]objectForKey:@"passwordKey"];
NSURL *url = [NSURL URLWithString: @"https://someurl"];
NSString *xmlString = [NSString stringWithFormat:
@"<?xml version=\"1.0\" encoding=\"utf-8\" ?>"
"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"
"<soap:Body>"
"<GetContactsWithId xmlns=\"http://tempuri.org/\">"
"<uid>%@</uid>"
"<pwd>%@</pwd>"
"</GetContactsWithId>"
"</soap:Body>"
"</soap:Envelope>",uName,pWord
];
NSData *data = [xmlString dataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
//---set the headers---
NSString *msgLength = [NSString stringWithFormat:@"%d", [xmlString length]];
[request addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request addValue:@"http://someurl" forHTTPHeaderField:@"SOAPAction"];
[request addValue:msgLength forHTTPHeaderField:@"Content-Length"];
//---set the HTTP method and body---
[request setHTTPMethod:@"POST"];
[request setHTTPBody: data];
if (connectionInprogress) {
[connectionInprogress cancel];
[connectionInprogress release];
}
//instantiate object to hold incoming data
[xmlData release];
xmlData = [[NSMutableData alloc]init];
connectionInprogress = [[NSURLConnection alloc]initWithRequest:request delegate:self startImmediately:YES];
}
-(void)connection:(NSURLConnection *)connection
didReceiveData:(NSData *)data{
[xmlData appendData:data];
}
- (void) connectionDidFinishLoading:(NSURLConnection *)connection{
NSXMLParser *parser = [[NSXMLParser alloc]initWithData:xmlData];
[parser setDelegate:self];
[parser parse];
[parser release];
[[self tableView] reloadData];
activityIndicator.stopAnimating;
[connectionInprogress release];
connectionInprogress = nil;
[xmlData release];
xmlData = nil;
}
#pragma mark -
#pragma Parser Methods
-(void)parser:(NSXMLParser *)parser
didStartElement:(NSString *) elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqual:@"ContactId"]) {
faxRecipient =[[FaxRecipient alloc]init];
remoteRecipientString = [[NSMutableString alloc]init];
}
else if ([elementName isEqual:@"Name"]) {
remoteRecipientString = [[NSMutableString alloc]init];
}else if ([elementName isEqual:@"Fax"]) {
remoteRecipientString = [[NSMutableString alloc]init];
}
else if ([elementName isEqual:@"Company"]) {
remoteRecipientString = [[NSMutableString alloc]init];
}
}
-(void) parser:(NSXMLParser *)parser
foundCharacters:(NSString *)string{
[remoteRecipientString appendString:string];
}
-(void)parser:(NSXMLParser *)parser
didEndElement:(NSString *) elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName{
if ([elementName isEqual:@"ContactId"]) {
faxRecipient.contactID = remoteRecipientString;
[remoteRecipientString release];
remoteRecipientString = nil;
}
if ([elementName isEqual:@"Name"]) {
faxRecipient.name = remoteRecipientString;
[remoteRecipientString release];
remoteRecipientString = nil;
}
if ([elementName isEqual:@"Fax"]) {
faxRecipient.fax = remoteRecipientString;
[remoteRecipientString release];
remoteRecipientString = nil;
}
if ([elementName isEqual:@"Company"]) {
faxRecipient.company = remoteRecipientString;
[remoteRecipientItems addObject:faxRecipient];
[faxRecipient release];
faxRecipient = nil;
[remoteRecipientString release];
remoteRecipientString = nil;
}
}
-(void)connection:(NSURLConnection *)connection
didFailWithError:(NSError *)error{
[connectionInprogress release];
connectionInprogress = nil;
[xmlData release];
xmlData = nil;
NSString *errorString = [NSString stringWithFormat:@"Remote Recipient Fetch Failed %@",[error localizedDescription]];
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:errorString
delegate:nil
cancelButtonTitle:@"OK"
destructiveButtonTitle:nil
otherButtonTitles:nil];
[actionSheet showInView:[[self view]window]];
[actionSheet autorelease];
}
#pragma mark -
#pragma mark Initialization
/*
- (id)initWithStyle:(UITableViewStyle)style {
// Override initWithStyle: if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
self = [super initWithStyle:style];
if (self) {
// Custom initialization.
}
return self;
}
*/
#pragma mark -
#pragma mark View lifecycle
- (void)viewDidLoad {
[super viewDidLoad];
remoteRecipientItems = [[NSMutableArray alloc]init];
remoteRecipientID = [[NSMutableArray alloc]init];
// add activity indicator
activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
activityIndicator.center = CGPointMake(self.view.bounds.size.width / 2.0f, self.view.bounds.size.height / 2.0f);
activityIndicator.hidesWhenStopped = YES;
[self.view addSubview:activityIndicator];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self loadRemoteRecipients];
/* self.navigationController.toolbarHidden=NO;
UIBarButtonItem *saveItem;
UIBarButtonItem *doneItem;
saveItem = [[ UIBarButtonItem alloc ] initWithTitle: @"Save"
style: UIBarButtonItemStyleBordered
target: self
action: @selector( btnSave ) ];
doneItem = [[ UIBarButtonItem alloc ] initWithTitle: @"Done"
style: UIBarButtonItemStyleBordered
target: self
action: @selector( btnDone ) ];
self.toolbarItems = nil ;
self.toolbarItems = [ NSArray arrayWithObjects: saveItem,doneItem,nil ];
[saveItem release];
[doneItem release];
*/
}
/*
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
}
*/
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
/* self.navigationController.toolbarHidden=YES; */
}
/*
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
}
*/
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations.
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
#pragma mark -
#pragma mark Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
return [remoteRecipientItems count];
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"RemoteRecipientItem";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
NSUInteger row = [indexPath row];
NSUInteger oldRow = [lastIndexPath row];
// Configure the cell...
FaxRecipient *faxObject= [remoteRecipientItems objectAtIndex:indexPath.row];
[[cell textLabel]setText:faxObject.name];
cell.accessoryType = (row == oldRow && lastIndexPath !=nil)? UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone;
cell.imageView.image = [UIImage imageNamed:@"contact.png"];
return cell;
}
#pragma mark -
#pragma mark Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
int newRow = [indexPath row];
int oldRow = (lastIndexPath !=nil)?[lastIndexPath row]:-1;
if (newRow != oldRow) {
UITableViewCell *newCell = [tableView cellForRowAtIndexPath:indexPath];
newCell.accessoryType = UITableViewCellAccessoryCheckmark;
UITableViewCell *oldCell = [tableView cellForRowAtIndexPath:lastIndexPath];
oldCell.accessoryType = UITableViewCellAccessoryNone;
// lastIndexPath = indexPath;
lastIndexPath = [indexPath retain];
}
[tableView deselectRowAtIndexPath:indexPath animated:YES];
FaxRecipient *faxObject= [remoteRecipientItems objectAtIndex:[indexPath row]];
[self.delegate getRemoteRecipient:faxObject];
[self.navigationController popViewControllerAnimated:YES];
}
#pragma mark -
#pragma mark Memory management
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Relinquish ownership any cached data, images, etc. that aren't in use.
}
- (void)viewDidUnload {
// Relinquish ownership of anything that can be recreated in viewDidLoad or on demand.
// For example: self.myOutlet = nil;
remoteRecipientItems = nil;
remoteRecipientID = nil;
lastIndexPath = nil;
faxRecipient = nil;
}
- (void)dealloc {
[remoteRecipientItems release];
[remoteRecipientID release];
[lastIndexPath release];
[faxRecipient release];
[super dealloc];
}
@end
最佳答案
我看到你的大部分语句都准备好泄漏,例如在 viewDidUnload 方法中,你没有正确释放任何实例成员。
您需要在您分配、初始化或保留的对象上调用释放。
(void)viewDidUnload {
// Relinquish ownership of anything that can be recreated in viewDidLoad or on demand.
// For example: self.myOutlet = nil;
[remoteRecipientItems release];
remoteRecipientItems = nil;
[remoteRecipientID release];
remoteRecipientID = nil;
..................
..................
}
建议您花一些时间阅读Memory Management Programming Guide
关于iphone - 我的 UITableViewController 内存泄漏在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6273931/
我正在使用 Swift 制作一个应用程序,但遇到了一个问题:我有一个系统,人们可以在其中发布“帖子”,并对这些“帖子”发表评论。 为了显示这一点,我有一个 UITableViewController
用户点击“远程”按钮,然后加载以下 UITableViewController: 然后用户选择我调用的任何值: [self.navigationController popViewController
在我离开页面并使用 UITabBarController 返回后,我的 TableViewController 在页面顶部留下了一个空隙。在初始加载时它很好,只有当我离开页面然后返回时才会出现间隙。我
我有一个 TableViewController (VC1) 设置为推送到另一个 TableViewController (VC2)。这个连接是通过从 VC1 到 VC2 的 ctrl-drag 在
在我的核心数据模型中,我有一个 Person 实体,它与 Course 实体具有“对多”关系(我还具有从 Course 到 Person 的反向“对一”关系)。 现在我有一个子类化的 UITableV
为什么不调用 numberOfSectionsInTableView 方法?如果我在 viewDidLoad 中添加 [self.tableView reloadData],它就会被调用,但即便如此,
在 UITableViewController 中,我有一个方法可以更新显示总价的底部工具栏。 public override UITableViewCell GetCell(UITa
我正在制作一个 iPad 应用程序,其中包含一个用于设置选项的 View 。这个“选项” View 有两个容器 View ,每个容器 View 都包含一个 TableView,其中包含两种不同的选项,
假设设置是 导航 Controller -> GradLevelUITableViewController -> DegreeUITableViewController -> View Control
我的问题是,这是否可能,如果可能,您将如何完成这项任务? 有人知道已经在使用此功能的应用程序,或者可以从哪里获得一些示例代码吗? 此外,如果我要在对主题了解不多的情况下自行实现此操作,您估计需要多长时
当 UITableViewController 的框架低于特定高度时,UITableViewController refreshControl 会出现问题。 就目前而言,我有一个 UIViewCont
我有我的主视图和一个 RoutinesTableViewController。 我想放松回到我的 VC 并尝试了这个: @IBAction func selectRoutine(segue:UISto
我是 swift 和 Xcode 的新手,我正在尝试一些事情。当我转到设置页面时,我想在设置页面(在应用程序中,而不是在设置 bundle 中)设置开关状态。 (我将segue设置为push)为此,我
我目前正在尝试将不同的实体从我的 CoreData 模型加载到一个 UITableView 中,但位于不同的部分下。我尝试过以下方法: override func tableView(tableVie
我试图让 tableview 适应 Swift 中键盘的显示。根据文档,如果 tableview 是 UITableViewController 的子类,它应该自动调整。已经在这里阅读了很多答案,只是
我想捕获UITableViewController中触摸点的x位置。网上描述的最简单的解决方案是UITapGestureRecognizer:enter link description here 但
我是 iPhone 编程的初学者。我的第一个应用程序是 UITableViewController 但现在我想尝试一下。这个想法是创建一个如下所示的自定义布局: 布局: ---------------
我有一个基于导航的应用程序,我将 UITableViewControllers 推送到堆栈上。我想向我的所有 UITableViewControllers 添加背景 UImage。不是 UIColor
在找到位置后,我尝试在 UITableViewController 中重新加载数据。这也意味着在 viewDidLoad 方法之后。我的类正在使用此接口(interface)扩展 UITableVie
我有一个TabBarController,其中一个选项卡包含一个 subview ,它是一个navigationController。然后,我将继承 UITableViewController 形式的
我是一名优秀的程序员,十分优秀!