问题标签 [objective-c]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 处理通过 NSObject 的 performSelectorOnMainThread:withObject:waitUntilDone 调用的方法期间引发的异常:
myMethod:
如果通过 NSObject 调用in 时引发的异常会发生什么performSelectorOnMainThread:withObject:waitUntilDone:
?
特别是,我可以在这样的调用范围内捕获它们performSelectorOnMainThread
吗...
我意识到如果 waitUntilDone 是 ,它的语义很奇怪NO
。
iphone - 您在编写 Objective-C 和 Cocoa 时使用了哪些最佳实践?
我知道HIG(非常方便!),但是在编写 Objective-C 时,尤其是在使用 Cocoa(或 CocoaTouch)时,您使用了哪些编程实践。
objective-c - Objective C 中的对象分配和初始化
以下两种分配和初始化对象的方法有什么区别?
和
大多数苹果示例使用第一种方法。为什么要分配、初始化和对象然后立即释放?
objective-c - 在 Objective-C 中向 nil 发送消息
作为正在阅读 Apple 的 Objective-C 2.0 文档的 Java 开发人员:我想知道“向 nil 发送消息”是什么意思——更不用说它实际上有什么用处了。从文档中摘录:
Cocoa 中有几种模式利用了这一事实。从消息返回到 nil 的值也可能是有效的:
- 如果该方法返回一个对象、任何指针类型、任何大小小于或等于 sizeof(void*) 的整数标量、float、double、long double 或 long long,则发送到 nil 的消息返回 0 .
- 如果该方法返回一个结构,如 Mac OS X ABI 函数调用指南中定义的那样,将在寄存器中返回,则发送到 nil 的消息将为数据结构中的每个字段返回 0.0。其他结构数据类型不会用零填充。
- 如果该方法返回上述值类型以外的任何值,则发送到 nil 的消息的返回值是未定义的。
Java 是否让我的大脑无法理解上面的解释?还是有什么我遗漏的东西可以使它像玻璃一样清晰?
我确实了解 Objective-C 中的消息/接收器,我只是对碰巧是nil
.
ios - 裁剪 UIImage
我有一些代码可以调整图像的大小,因此我可以获得图像中心的缩放块 - 我使用它来获取UIImage
并返回图像的一个小的方形表示,类似于在专辑视图中看到的照片应用程序。(我知道我可以使用 aUIImageView
并调整裁剪模式来获得相同的结果,但这些图像有时会显示在 中UIWebViews
)。
我开始注意到这段代码中有一些崩溃,我有点难过。我有两种不同的理论,我想知道是否有任何一种是基于的。
理论 1)我通过绘制到我的目标尺寸的屏幕外图像上下文来实现裁剪。由于我想要图像的中心部分,因此我将CGRect
传递给的参数设置为drawInRect
大于图像上下文范围的参数。我希望这是 Kosher,但我是不是试图画出我不应该接触的其他记忆?
理论2)我在后台线程中完成所有这些。我知道 UIKit 的某些部分仅限于主线程。我假设/希望绘制到屏幕外视图不是其中之一。我错了吗?
(哦,我多么怀念NSImage's drawInRect:fromRect:operation:fraction:
方法。)
iphone - OCUnit 和 OCMock 可以在 iPhone SDK 上工作吗?
我根本无法让它工作,我想知道我是在浪费时间,还是我只是愚蠢!
抱歉,我现在没有确切的错误。但我只想知道它是否有效!
objective-c - 在 Objective-C 中生成随机数
我主要是Java头,我想要一种方法来生成0到74之间的伪随机数。在Java中我会使用该方法:
我对关于种子或真正随机性的讨论不感兴趣,只是你如何在 Objective-C 中完成相同的任务。我搜索了谷歌,似乎有很多不同且相互矛盾的信息。
iphone - 在 2D 场景中创建“放大镜”的最佳方式是什么?
我正在开发一款游戏,我需要让玩家通过镜头(例如,放大镜)观察飞机(例如,墙壁)。游戏是在 iPhone 上运行的,所以我的选择是 Core Animation 或 OpenGL ES。
我的第一个想法(我还没有尝试过)是使用 Core Animation 来做到这一点。
- 使用 CALayers 在其上创建墙和对象。
- 使用 CALayer 的
renderInContext:
方法创建墙壁的图像作为背景层。 - 将图像裁剪为镜头形状,按比例放大,然后将其绘制在背景上。
- 在上面画上镜框和“闪亮玻璃”层。
笔记:
- 我比 OpenGL 更熟悉 Core Animation,所以也许有更好的方法来使用 OpenGL 来做到这一点。(请告诉我!)
- 如果我使用未附加到视图的 CALayers,我是否必须自己管理所有动画?还是有一种简单的方法可以手动运行它们?
- 3D视角不重要;我只是放大一面平坦的墙壁。
- 我担心执行上述所有操作对于流畅的动画来说太慢了。
在我提交大量代码来编写此代码之前,我的问题是您是否看到上述计划中的任何陷阱,或者您能否推荐一种更简单的方法来做到这一点?
iphone - 在objective-c(iphone版)中做观察者/可观察的最好方法是什么
我习惯于编写 Java Swing UI,如果您有一些更改的属性,并且您希望您的 UI 更新,您将实现观察者/可观察模式。在 Java 中,您通常通过让您的类维护它通知不同事件的侦听器列表来执行此操作。
我在 Mac 上玩过 Objective-C,它有 KVC 和绑定,看起来工作得很好,并且需要更少的代码。iPhone SDK 似乎没有此功能,所以我的问题是:如果我有一个包含更改数据的类,那么我向该类注册 UI 组件以便通知它的最佳方法是什么它需要显示的数据的变化?
objective-c - [NSKeyedUnarchiver decodeObjectForKey] 导致内存泄漏
每次我调用此方法时,我的 NSMutableData 都会泄漏,我无法弄清楚如何插入它。在分配和初始化解码器后,theData 的保留计数增加了 1,我不知道为什么。我在方法结束时被保留计数为 2 并试图释放它会导致应用程序崩溃。