Questions tagged «objective-c»

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






8
Objective-C ARC:强vs保留,弱vs分配
ARC strong和引入了两个新的内存管理属性weak。 除了copy,这显然是完全不同的,vs 和vs 之间是否有任何区别?strongretainweakassign 根据我的理解,这里唯一的区别是weak将分配nil给指针,而不会分配给指针,assign这意味着一旦释放指针后,我将消息发送给指针,程序就会崩溃。但是,如果我使用weak,这将永远不会发生,因为发送至的消息nil将无济于事。 我不知道strong和之间的任何区别retain。 是否有任何理由为什么我应该使用assign,并retain在新的项目,或者是那种被弃用?

7
按下时会两次调用UILongPressGestureRecognizer
我正在检测用户是否已按下2秒钟: UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)]; longPress.minimumPressDuration = 2.0; [self addGestureRecognizer:longPress]; [longPress release]; 这是我处理长按的方式: -(void)handleLongPress:(UILongPressGestureRecognizer*)recognizer{ NSLog(@"double oo"); } 当我按下2秒钟以上时,文本“ double oo”被打印两次。为什么是这样?我该如何解决?



12
在Objective-C中为类定义私有方法的最佳方法
我刚开始编写Objective-C程序,并且以Java为背景,想知道编写Objective-C程序的人如何处理私有方法。 我了解可能有几种约定和习惯,并考虑此问题作为人们在Objective-C中使用的处理私有方法的最佳技术的集合。 发布时,请为您的方法添加一个参数。为什么好呢?它具有(您知道的)哪些缺点以及如何处理它们? 至于到目前为止的发现。 可以使用MyClass.m文件中定义的类别 [例如MyClass(私有)]对私有方法进行分组。 此方法有两个问题: Xcode(和编译器?)不会检查是否在相应的@implementation块中的私有类别中定义了所有方法 您必须在MyClass.m文件的开头放置@interface声明您的私有类别,否则Xcode会抱怨“自身可能无法响应消息” privateFoo”之类的消息。 第一个问题可以通过使用空类别 [例如MyClass()]解决。 第二个让我很困扰。我希望看到在文件末尾附近实现(和定义)私有方法。我不知道是否可能。


16
如何在UIView下绘制阴影?
我正在尝试UIView在Cocoa Touch 的底部边缘下方绘制阴影。我知道我应该CGContextSetShadow()用来绘制阴影,但是Quartz 2D编程指南有点模糊: 保存图形状态。 调用该函数CGContextSetShadow,并传递适当的值。 执行要向其应用阴影的所有图形。 恢复图形状态 我在UIView子类中尝试了以下方法: - (void)drawRect:(CGRect)rect { CGContextRef currentContext = UIGraphicsGetCurrentContext(); CGContextSaveGState(currentContext); CGContextSetShadow(currentContext, CGSizeMake(-15, 20), 5); CGContextRestoreGState(currentContext); [super drawRect: rect]; } ..但这对我不起作用,我对(a)接下来要去哪里和(b)是否需要对我UIView进行这项工作感到有些困惑?

5
__attribute __((constructor))到底如何工作?
似乎很清楚,它应该进行设置。 它什么时候运行? 为什么有两个括号? 是__attribute__功能吗?宏?句法? 这在C中有效吗?C ++? 它使用的功能是否必须是静态的? 什么时候__attribute__((destructor))运行? Objective-C中的示例: __attribute__((constructor)) static void initialize_navigationBarImages() { navigationBarImages = [[NSMutableDictionary alloc] init]; } __attribute__((destructor)) static void destroy_navigationBarImages() { [navigationBarImages release]; }
347 c++  objective-c  c  gcc 

30
编写Objective-C和Cocoa时使用的最佳实践是什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我知道HIG(非常方便!),但是在编写Objective-C时,尤其是在使用Cocoa(或CocoaTouch)时,会使用哪些编程实践。


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.