Questions tagged «cocoa-touch»

驱动iOS应用程序的Cocoa Touch框架共享在Mac上发现的许多成熟模式,但它们的构建特别着重于基于触摸的界面和优化。


10
NSString属性:复制还是保留?
假设我有一个SomeClass带有string属性名称的类: @interface SomeClass : NSObject { NSString* name; } @property (nonatomic, retain) NSString* name; @end 我了解可能会给该名称分配一个,NSMutableString在这种情况下,这可能会导致错误的行为。 对于一般的字符串,使用属性而不是总是一个好主意吗?copyretain “复制”资产的效率是否比这种“保留”资产低?


4
如何将文件类型与iPhone应用程序关联?
关于将iPhone应用程序与文件类型相关联的主题。 在这个有用的问题中,我了解到应用程序可以与自定义URL协议相关联。 大约一年前,自那时以来,苹果公司推出了“文档支持”,这进一步向前发展,并允许应用程序与文件类型相关联。文档中有很多关于如何设置您的应用程序以在遇到未知文件类型时启动其他合适的应用程序的话题。这意味着该关联对于任何应用程序都不是开箱即用的,就像URL协议注册一样。 这就引出了一个问题:是否有像Safari或Mail这样的系统应用程序实现了该系统来选择关联的应用程序,还是像以前一样不执行任何操作?
318 ios  cocoa-touch 

30
根据文本调整UILabel的高度
考虑一下我在UILabel(一长行动态文本)中包含以下文本: 由于外星军队的数量远远超过队伍,因此玩家必须利用世界末日的世界来发挥自己的优势,例如在垃圾箱,支柱,汽车,瓦砾和其他物体后面寻求掩护。 我想调整UILabel's高度以使文本适合。我使用以下属性UILabel来使文本在其中进行环绕。 myUILabel.lineBreakMode = UILineBreakModeWordWrap; myUILabel.numberOfLines = 0; 如果我没有朝正确的方向前进,请告诉我。谢谢。


6
从Swift在iOS上生成UUID
在我的iOS Swift应用中,我想生成随机UUID(GUID)字符串用作表键,此代码段似乎可以正常工作: let uuid = CFUUIDCreateString(nil, CFUUIDCreate(nil)) 这样安全吗? 还是有更好的(推荐)方法?

30
-didSelectRowAtIndexPath:不被调用
我正在写一个带有选项卡视图内的表格视图的iOS应用。在我的中UITableViewController,我实现了-tableView:didSelectRowAtIndexPath:,但是当我在运行时选择一行时,不会调用该方法。虽然正在填充表视图,所以我知道正在调用控制器中的其他tableView方法。 有谁知道我可能为实现这一目标而搞砸了什么?

23
如何从Xib文件加载自定义UITableViewCells?
问题很简单:如何UITableViewCell从Xib文件加载自定义?这样可以使您使用Interface Builder设计单元。由于内存管理问题,答案显然并不简单。该线程提到了该问题并提出了解决方案,但已在NDA之前发布,并且缺少代码。这是讨论问题的长篇文章,但没有提供明确的答案。 这是我使用的一些代码: static NSString *CellIdentifier = @"MyCellIdentifier"; MyCell *cell = (MyCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellIdentifier owner:self options:nil]; cell = (MyCell *)[nib objectAtIndex:0]; } 要使用此代码,请创建MyCell.m / .h,这是MyCell的新子类,UITableViewCell并IBOutlets为所需的组件添加。然后创建一个新的“ Empty XIB”文件。在IB中打开Xib文件,添加一个UITableViewCell对象,将其标识符设置为“ MyCellIdentifier”,并将其类设置为MyCell并添加您的组件。最后,将连接IBOutlets到组件。请注意,我们没有在IB中设置文件的所有者。 其他方法提倡设置文件的所有者,如果没有通过其他工厂类加载Xib,则警告内存泄漏。我在“仪器/泄漏”下测试了以上内容,但没有发现内存泄漏。 那么从Xibs加载单元的规范方法是什么?我们是否设置文件的所有者?我们需要工厂吗?如果是这样,工厂的代码是什么样的?如果有多种解决方案,让我们阐明它们各自的优缺点...

24
在UIToolbar上创建一个左箭头按钮(如UINavigationBar的“后退”样式)
我很想在中创建一个“后”左箭头屏幕按钮UIToolbar。 据我所知,获取其中之一的唯一方法是保留UINavigationController默认设置,并且将其中一个用于左栏。但是我找不到将其创建为a的方法UIBarButtonItem,因此UIToolbar即使它们与UINavigationBars 非常相似,也无法在标准中创建一个。 我可以使用按钮图像手动创建它,但是在任何地方都找不到源图像。它们具有Alpha通道边缘,因此截图和剪切不会获得非常通用的结果。 除了我打算使用的每种尺寸和配色方案的屏幕截图以外,还有其他想法吗? 更新:请停止回避问题,并建议我不应该问这个问题,而应该使用UINavigationBar。我的应用是Instapaper Pro。它仅显示底部的工具栏(以节省空间并最大程度地增加可读区域),我希望在底部放置一个左箭头形的“后退”按钮。 告诉我我不需要这样做不是一个答案,当然也不应该得到赏金。

30
收到EXC_BAD_ACCESS信号
将应用程序部署到设备上时,程序将在几个周期后退出,并显示以下错误: Program received signal: "EXC_BAD_ACCESS". 该程序可以在iPhone模拟器上运行,没有任何问题,只要我一次逐步执行说明,它就会进行调试和运行。一旦让它再次运行,我就会EXC_BAD_ACCESS发出信号。 在这种情况下,加速度计代码恰好是一个错误。它不会在模拟器中执行,这就是为什么它不会引发任何错误的原因。但是,它将在部署到设备后执行。 该问题的大多数答案都涉及一般EXC_BAD_ACCESS错误,因此我将保留所有这些作为对可怕的错误访问错误的综合解决方案。 EXC_BAD_ACCESS通常是由于非法内存访问而抛出的。您可以在下面的答案中找到更多信息。 您EXC_BAD_ACCESS以前是否遇到过信号,并且如何处理?
290 ios  cocoa-touch 




9
何时调用layoutSubviews?
我有一个自定义视图,layoutSubview动画期间没有收到消息。 我有一个充满屏幕的视图。它在屏幕底部有一个自定义子视图,如果我更改导航栏的高度,该子视图将在Interface Builder中正确调整大小。layoutSubviews在创建视图时调用,但不再调用。我的子视图已正确布置。如果我将通话中的状态栏关闭,则layoutSubviews即使主视图会为其调整大小设置动画,也根本不会调用该子视图。 在什么情况下layoutSubviews实际上被称为? 我已autoresizesSubviews设置NO为我的自定义视图。在Interface Builder中,我具有顶部和底部的支撑杆以及垂直箭头设置。 难题的另一部分是必须将窗口设置为关键: [window makeKeyAndVisible]; 其他子视图不会自动调整大小。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.