我正在使用子类扩展类的功能,并且我正在做一些使子类的上下文中的超类方法变得危险(应用程序将在循环中挂起)的脏东西.我知道这不是一个天才的想法,但是我会选择低调的果实,现在它会节省我一些时间.哦,这是一份肮脏的工作,但有人必须这样做.
最重要的是,我需要从外部阻止该方法,或者在直接调用超类时抛出异常.(但我仍然从子类中使用它,除非小心).
最好的方法是什么?
更新---
所以这就是我的目标.我不是自我回答,因为Boaz的回答提到了多种有效的方法,这就是适合我的方式.在子类中,我重写了这样的方法:
- (int)dangerousMethod
{
[NSException raise:@"Danger!" format:@"Do not call send this method directly to this subclass"];
return nil;
}
Run Code Online (Sandbox Code Playgroud)
我将此标记为已回答,但显然这并不意味着它已经结束,欢迎进一步的建议.
我是Shark的新手,我想知道是否可以将时间样本缩小到一个特定的方法?
假设我只是为了它而知道在调用所有NSArray(或子类)实例的方法'count'时使用了多少资源.
要在OpenGL中绘制虚线,我可以使用glLineStipple,但是如何在OpenGL ES 1中实现相同的效果呢?
如何应用始终保持其原始比例的重复纹理(纹理中的1个像素=屏幕上的1个像素),而不管其应用的顶点数据如何.
我意识到这不是最常见的任务,但可以轻松设置opengl来做到这一点,还是我需要将某种掩模应用于尊重其原始外观的顶点数据?
编辑:在我的具体情况下,我试图绘制不同大小的2D椭圆,具有相同的像素模式.椭圆形由三角形扇形成,我很难在其上绘制任何类型的重复纹理.我希望有一些opengl配置组合可以很容易地做到这一点.此外,现在我意识到重要的是要提到我正在使用opengles,因为iPhone不可用.
使用Python生成位图的最简单方法是什么?
文本支持会很好,但不是必需的.
(在Mac上,我试图通过Python使用Quartz,但Snow Leopard似乎已经破坏了它的功能.因此我决定寻找一个坚实,简单,跨平台的解决方案,每次操作系统都不会破坏更新.)
寻找关于定位OpenGL ES应用程序的线索,我发现的大多数信息可以追溯到2008年,其中大部分都是指SDK的早期版本.显然,在过去的日子里,在GL的情况下,建议不要旋转视图,而是将旋转应用为GL变换.目前的SDK仍然如此吗?简单地旋转窗口会简单得多:所有触摸事件都与旋转同步.
换句话说:如何在横向模式下设置OpenGL视图?
我注意到,通过查看Apple的示例代码,他们倾向于设计接收结构而不是多个参数的方法.这是为什么?就易用性而言,我个人更喜欢后者,但就性能而言,是否有比另一种更好的选择?
[pencil drawPoint:Point3Make(20,40,60)]
[pencil drawPointAtX:20 Y:50 Z:60]
Run Code Online (Sandbox Code Playgroud) 我有一个类,其中包含SEL类型的实例变量,它是对选择器的引用.在encodeWithCoder/initWithCoder里面,我该如何编码/解码这种类型的变量?