Questions tagged «objective-c»

仅在有关Objective-C功能或取决于语言代码的问题上使用此标记。标签[cocoa]和[cocoa-touch]应该用于询问Apple的框架或类。使用相关标签[ios],[macos],[apple-watch]和[tvos]来解决特定于这些平台的问题。

30
突出显示时如何更改UIButton的背景颜色?
在我的应用中的某个时刻,我有一个突出显示的内容UIButton(例如,当用户将手指放在按钮上时),并且我需要在突出显示按钮时更改背景色(因此,当用户的手指仍在按钮上时) 。 我尝试了以下方法: _button.backgroundColor = [UIColor redColor]; 但这是行不通的。颜色保持不变。当按钮未突出显示且工作正常时,我尝试了同一段代码。-setNeedsDisplay更改颜色后,我也尝试致电,但没有任何效果。 如何强制按钮更改背景颜色?

5
Objective-C中的自动引用计数不会阻止或减少哪种泄漏?
在Mac和iOS平台中,内存泄漏通常是由未释放的指针引起的。传统上,检查您的分配,复制和保留以确保每个都有相应的释放消息一直是最重要的。 Xcode 4.2随附的工具链在最新版本的LLVM编译器中引入了自动引用计数(ARC),通过使编译器为您的内容进行内存管理,从而完全解决了此问题。这很酷,并且确实减少了很多不必要的,平凡的开发时间,并防止了许多粗心大意的内存泄漏,这些泄漏很容易通过适当的保留/释放平衡来解决。当为Mac和iOS应用程序启用ARC时,甚至需要对自动释放池进行不同的管理(因为您NSAutoreleasePool不再应该分配自己的s)。 但是,其他的内存泄漏它不能阻止我仍然要注意? 另外,Mac OS X和iOS上的ARC与Mac OS X上的垃圾回收之间有什么区别?


8
Objective-C中方法混乱的危险是什么?
我听说人们说方法混乱是一种危险的做法。甚至连起草的名字都暗示这有点作弊。 方法Swizzling正在修改映射,以便调用选择器A实际上将调用实现B。此方法的一种用法是扩展封闭源类的行为。 我们是否可以将风险正式化,以便任何决定是否使用毛毛雨的人都可以做出明智的决定,以决定这样做是否值得。 例如 命名冲突:如果该类以后扩展其功能以包括您添加的方法名称,则将引起大量问题。通过合理命名混淆方法来降低风险。

11
iOS 7导航栏文本和箭头颜色
我想将导航栏的背景设置为黑色,并将其中的所有颜色设置为白色。 因此,我使用了以下代码: [[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys: [UIColor whiteColor], NSForegroundColorAttributeName, [UIColor whiteColor], NSForegroundColorAttributeName, [NSValue valueWithUIOffset:UIOffsetMake(0, -1)], NSForegroundColorAttributeName, [UIFont fontWithName:@"Arial-Bold" size:0.0], NSFontAttributeName, nil]]; 但是后退按钮的文字颜色,箭头和方向键仍为默认蓝色。 如何更改下图所示的颜色?

3
了解dispatch_async
我对此代码有疑问 dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSData* data = [NSData dataWithContentsOfURL: kLatestKivaLoansURL]; [self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES]; }); 此代码的第一个参数是 dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) 我们是否在要求此代码在全局队列上执行串行任务,该队列本身的定义是返回给定优先级的全局并发队列? 使用dispatch_get_global_queuemain队列有什么好处? 我很困惑。您能否帮助我更好地理解这一点。


13
适用于Windows的Objective-C
在Windows平台上编写Objective-C的最佳方法是什么? Cygwin和gcc?有什么方法可以将其集成到Visual Studio中吗? 沿着这些思路,关于如何链接和使用Windows SDK之类的东西,有任何建议。它是另一种野兽,但是我知道我可以在Windows DLL中编写汇编和链接,使我可以访问这些调用,但是我不知道如何在不进行谷歌搜索和获得零碎指导的情况下进行操作。 有没有人知道一个很好的在线或书籍资源来做或解释这些事情?



11
您可以将UIGestureRecognizer附加到多个视图吗?
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapTapTap:)]; [self.view1 addGestureRecognizer:tapGesture]; [self.view2 addGestureRecognizer:tapGesture]; [tapGesture release]; 在上面的代码中,仅view2可识别点击。如果我注释掉第三行,则view1可以识别点击。如果我是对的,并且您只能使用一次手势识别器,那么我不确定这是一个错误还是仅需要更多文档。

20
iOS 8快照未呈现的视图会导致快照为空
在iOS 8中,我无法从相机捕获图像,直到现在为止,我一直将此代码用于 UIImagePickerController *controller=[[UIImagePickerController alloc] init]; controller.videoQuality=UIImagePickerControllerQualityTypeMedium; controller.delegate=(id)self; controller.sourceType=UIImagePickerControllerSourceTypeCamera; [self presentViewController:controller animated:YES completion:nil]; 但是在iOS 8中,我得到了这个: Snapshotting a view that has not been rendered results in an empty snapshot. Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates. 我曾尝试与所提供的解决方案这个帖子用 @property (strong,nonatomic)UIImagePickerController *controller; _controller=[[UIImagePickerController alloc] …

2
setNeedsLayout与setNeedsUpdateConstraints和layoutIfNeeded与updateConstraintsIfNeeded
我知道自动布局链基本上包含3个不同的过程。 更新约束 布局视图(这是我们计算框架的位置) 显示 对我来说,还不完全清楚-setNeedsLayout和之间的内在区别-setNeedsUpdateConstraints。从Apple Docs: setNeedsLayout 若要调整视图的子视图的布局,请在应用程序的主线程上调用此方法。此方法记录请求并立即返回。因为此方法不会强制立即更新,而是等待下一个更新周期,所以您可以使用它在更新任何这些视图之前使多个视图的布局无效。此行为使您可以将所有布局更新合并到一个更新周期,这通常可以提高性能。 setNeedsUpdateConstraints 当自定义视图的属性以影响约束的方式更改时,您可以调用此方法以指示在将来的某个时刻需要更新约束。然后,系统将调用updateConstraints作为其常规布局传递的一部分。在需要约束之前立即全部更新约束,以确保在布局遍之间两次对视图进行多次更改时,您不必不必要地重新计算约束。 当我想在修改约束后为视图添加动画并为更改添加动画时,通常会调用例如: [UIView animateWithDuration:1.0f delay:0.0f usingSpringWithDamping:0.5f initialSpringVelocity:1 options:UIViewAnimationOptionCurveEaseInOut animations:^{ [self.modifConstrView setNeedsUpdateConstraints]; [self.modifConstrView layoutIfNeeded]; } completion:NULL]; 我发现,如果我使用-setNeedsLayout的,而不是-setNeedsUpdateConstraints一切都按预期方式工作,但如果我改变-layoutIfNeeded用-updateConstraintsIfNeeded,动画将不会发生。 我试图做出自己的结论: -updateConstraintsIfNeeded 仅更新约束,但不强制布局进入流程,因此仍保留原始帧 -setNeedsLayout调用也-updateContraints方法 那么什么时候可以使用一个代替另一个呢?关于布局方法,是否需要在约束发生变化的视图或父视图上调用它们?



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.