Tag: Objective C

用于重用UIAlertView的内存管理

假设我有多个View控制器类使用相同的UIAlertView * alertView。 * alertView的委托设置为集中委托。 我这样做是因为想要使用.tag根据它做不同的事情。 问题是每次我调用警报视图或忽略它时,我该怎么做才能防止内存泄漏? 我不应该每次都发布吗? 或者这是一个非常糟糕的主意? 谢谢。

预期的标识符或’(’在iOS中

我正在尝试使用Apple的iOS核心数据教程,但无法解决此错误。 我试图通过阅读这里的所有问题来解决这个问题但却无处可去 – 有任何想法吗? #import UINavigationController *navigationController; @interface AppDelegate : UIResponder @property (strong, nonatomic) UIWindow *window; @property (nonatomic, retain) UINavigationController *navigationController; // expected identifier or ‘(‘ on the line above @end

Modal UINavigationController隐藏虽然没有解散

好的,所以我正在构建一个带有初始登录视图的通用iOS应用程序(视图控制器名为LoginVC),只是一个简单的简单UIViewController。 如果登录成功,则应用程序将转向导航控制器(MainNavigationVC)。 我通过XCode的故事板gui创建了这个segue,因此没有编程创建导航控制器。 导航控制器以全屏模式呈现,因此应用程序的其余部分在登录视图的顶部运行,此导航控制器作为所有内容的核心。 导航控制器包含一个视图(具有名为UserStartPageVC的视图控制器),并在其导航栏中有一个注销按钮。 此按钮向UserStartPageVC发送目标操作,目标是解除导航控制器,从而将用户带回登录视图。 到目前为止一切正常。 我可以按预期登录并使用该应用程序。 但! 当我退出然后重新登录XCode告诉我这个: 警告! 在演示文稿正在进行时,尝试在上显示! 我想这意味着登录视图试图以模态方式显示MainNavigationVC导航控制器,但是已经显示了另一个,对吧? 但是怎么样? 可以在没有显示的情况下呈现视图吗 如何在退出时摆脱旧的导航控制器? 我已经尝试了几种解除模态视图的方法,例如: 从UserStartpageVC中运行 [x dismissViewControllerAnimated:YES completion:NULL] [x dismissModalViewControllerAnimated:YES] 其中x是self,self.parentViewController或self.presentingViewController。 将LoginVC设置为UserStartpageVC中的属性并运行 [self.loginVC dismissViewControllerAnimated:YES completion:NULL] 等等。 所有经过测试的电话实际上都会让我回到登录界面,所以它有点工作。 有任何想法吗? 如有必要,可以提供相关的代码示例,我只是无法弄清楚哪些部分是感兴趣的。 对导航控制器的搜索没有代码(performSegueWithIdentifier:sender :)除外,解雇它的代码是我似乎无法直接得到的部分。 作为旁注。 到目前为止,这不是一个真正的问题; 应用程序运行,并且可以在没有任何其他副作用的情况下注销和重新登录,而不是XCode中的错误消息。 但是我认为如果用户多次登出并登录,这将是一次内存泄漏,而且我没有心情遭到Apple的不必要的拒绝。

滚动后单元格变空。 (Xcode中)

我的tableview有问题。 当我滚动并且单元格从屏幕上消失时,它变为空白。 我在故事板中构建了一个带有两个标签和一个imageview的原型单元,它与我在代码中使用的标识符相同。 我还为customcell构建了一个自定义类。 这是cellForRowAtIndexPath中的代码: – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @”Cell”; Scientist *currentScientist = [[xmlParser data] objectAtIndex:indexPath.row]; CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } cell.self.cellName.text = currentScientist.self.name; cell.self.cellSubject.text = currentScientist.self.subject; cell.self.cellImage.image = currentScientist.self.image; return cell; } 我不知道你是否需要更多的代码来帮助我。

UISplitViewController在推送新的detailView时不调用委托方法

我根据Master-Detail Application设置了一个故事板,将详细视图嵌入到导航控制器中,并添加一个新的表视图控制器对象,我将用它作为第二个详细视图控制器。 然后,我使用以下代码推送新的详细视图控制器(而不是segue,因为我同时推动根视图和详细视图控制器。仅显示详细视图代码)。 // Push the detailView view controller: NewClass *newViewController = [self.storyboard instantiateViewControllerWithIdentifier:@”test”]; newViewController.navigationItem.hidesBackButton = YES; self.splitViewController.delegate = newViewController; [self.detailViewController pushViewController:newViewController animated:YES]; 这非常有效,除了在推送之前或之后从不调用splitView委托方法。 如果我在纵向模式下执行此操作,在推送detailViewController之后,下拉masterView弹出按钮的按钮不显示UNTIL我旋转到横向模式然后再回到纵向模式。 如何调用willHideViewController / willShowViewController拆分视图控制器委托方法或手动调用它们?

目标C:如何解决’无法识别的选择器发送到实例’错误

我试图使用以下代码访问实例对象的属性 for (User *user in likersArray) { //Set variables for dictionary NSString *nameLength = [NSString stringWithFormat:@”%i”,[user.nickname length]]; } 但是,我一直收到以下错误: *** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[NSCFString nickname]: unrecognized selector sent to instance 0x8c0f780’ 我的用户类定义如下 @interface User : NSObject { NSString *uid; NSString *name; NSString *nickname; } @property (nonatomic, copy) NSString *uid; @property […]

CGImageRef cg = CGImage]; 需要CGImageRelease(cg)’?

我试图从iOS中的图像资源中读取ARGB像素。 为此,我需要一个CGImageRef我可以用来获取它的CGDataProvider 。 我的问题是,如果我使用以下方法创建CGImageRef : CGImageRef cg = [[UIImage imageNamed: Path] CGImage]; 我最终需要调用CGImageRelease(cg)吗? 如果我不调用CGImageRelease ,我会有内存泄漏吗? 我遇到的另一个问题是第二次读取同一个文件会返回一个空图像,我怀疑这可能是因为我没有第一次调用CGImageRelease 。

ASIHTTPRequest内存泄漏

我有一个iOS项目,我在自己的类中使用ARC,但是在ASIHTTPRequest等其他库中关闭了ARC。 我使用下面的代码从Web服务器获取图像,从而导致大量内存泄漏: -(void)buildPhotoView { self.photoLibView.hidden = NO; NSString *assetPathStr = [self.cellData objectForKey:@”AssetThumbPath”]; // get the thumbnail image of the ocPHOTOALBUM from the server and populate the UIImageViews NSURL *imageURL = [NSURL URLWithString:assetPathStr]; __block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:imageURL]; __unsafe_unretained ASIHTTPRequest *weakRequest = request; [weakRequest setCompletionBlock:^{ // put image into imageView when request complete NSData *responseData […]

PDF特别搜索iOS

我知道有一个很棒的源可以在iOS上进行PDF搜索,它是PDFKitten 但我的情况是,我遇到一些PDF文件,这个源不适用于搜索。 我试图通过Mac上的“预览”应用程序打开这些文件并尝试搜索,它可以正常工作。 我在这里上传了一个文件 。 您可以通过“预览”应用打开此文件进行检查,然后搜索“ra”一词。 它完美无缺。 如果您将此文件拖到源PDFKitten并进行一些配置以便源打开它,然后尝试搜索,它不起作用。 我查看了源代码,它关注所有显示运算符的文本,包括Tj,’,”,TJ。 我在这些运营商的回调中放置了一些日志行,我看到这些回调没有被调用。 你能提出一些建议或意见吗?

目标C:应用程序获取内存警告级别2并在不久之后退出

我的应用程序从服务器抓取照片图像并将它们存储在一个数组中,该数组最终将显示在UITableView控制器中。 我在一个单元格中显示2个图像(768×768像素和100×100像素)。 在启动时,该应用程序将加载10个带有图像的单元格,用户可以选择使用“加载更多”按钮加载下10张照片。 通常在15-20’加载更多’点击之后,我将收到内存警告级别= 2的消息,我的应用程序将终止。 这是因为显示的图像太多了吗? 我该如何解决这个问题?