当我阅读关于新的4.0.2 iOS更新时,我想知道黑客做了什么或尝试做缓冲区溢出,这是在一些维基百科让我对使用malloc感兴趣并因此创建我自己的"NSObject"之后.
我实际上并没有计划在我的任何应用程序中使用它,它只用于学习和使用objective-c.
当然,正如预期的那样,我遇到了一些我无法解决的问题.
为了创建我的对象我做:
+ (id)create{ return malloc(sizeof(self)); }
Run Code Online (Sandbox Code Playgroud)
和
- (void)free { free(self); }
Run Code Online (Sandbox Code Playgroud)
调用[TestObject create]时; 我收到以下控制台消息:
"8/11/10 11:17:31 PM TestingHeap [2675]***NSInvocation:警告:类'AObject'的对象0x100002100未实现doesNotRecognizeSelector: - abort"
所以它试图将我的对象作为NSObject处理..?以及如何解决这个问题.
另外,在没有Foundation或AppKit的情况下进行编译时,我会发现缺少符号的错误,特别是__objc_empty_vtable和__objc_empty_cache.我试过从/ usr/include/objc /中包含几个头文件
提前致谢.
更新
在与libobjc链接后,我尝试从我的类中调用方法时收到EXC_BAD_INSTRUCTION.
我想实现一个时间轴,就像你可以在iMovie或Final Cut中找到的那样,你可以向任意一个方向滚动.向左滚动将返回到时间(月),向右滚动将及时向前滚动,从而创建平滑的连续路径.
实现这个的最佳方法是什么?
重新创建惯性滚动的一个缺点是,如果Apple决定更改它,我的应用程序会觉得很奇怪.我个人不喜欢它,当一个应用程序没有感觉系统集成,这包括像塔疯狂的游戏,他们制作自己的滚动视图,工作非常糟糕,感觉不对.
我试图在我实现的聊天历史视图中实现平滑滚动,但是如果我追加的内容足够大,则平滑滚动只会滚动几行.
我的第一个猜测是视图没有重绘自己..不是这样,即使用-display强制立即绘图它仍然会破坏.
- (void)scrollAnimated:(BOOL)animated
{
if( animated )
{
NSClipView *clipView = [[_chatHistoryView enclosingScrollView] contentView];
[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:0.100f];
NSPoint constrainedPoint = [clipView constrainScrollPoint:NSMakePoint(0, CGFLOAT_MAX)];
[[clipView animator] setBoundsOrigin:constrainedPoint];
[NSAnimationContext endGrouping];
}
else
{
NSRange range;
range.location = [[_chatHistoryView textStorage] length];
range.length = 1;
[_chatHistoryView scrollRangeToVisible:range];
}
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我曾经使用并喜欢RBSplitView,但是由于某个版本的xcode不再支持IB插件,我无法以编程方式重新实现它.
因此我回到使用NSSplitView.NSSplitView适合我需要的东西,就是NSSplitView的autoSave被打破了.所以我决定自己实施它.
我目前正在做的事情是调整NSSplitView的1个子视图的大小.
调整NSSplitView大小的正确方法是什么? - setPositionOfDivider:itIndex:应该是要走的路(没试过),但是我不知道如何获得分频器的当前位置.
- 提前致谢
由于Xcode 4可能会保持现在的速度,因此是否有任何编辑器能够识别代码并且具有Objective-C的优势?
我不会停止使用xcode,它仍然具有很多功能,但仅用于编写代码.
当我使用仪器和仪器"分配"监控我的应用程序时,我看到大量内存被标记为"脏".那是什么意思?我的应用程序中没有内存泄漏但这堆"脏"内存不断增加.
在 Objective-c 中,我曾经通过基于以下 CoreGraphics 调用来实现我的空闲计时器:
CGEventSourceSecondsSinceLastEventType(kCGEventSourceStateCombinedSessionState, kCGAnyInputEventType);
Run Code Online (Sandbox Code Playgroud)
现在在 swift 中,使用相同的基本调用,它看起来像:
CGEventSourceSecondsSinceLastEventType(CGEventSourceStateID.CombinedSessionState, CGEventType.MouseMoved)
Run Code Online (Sandbox Code Playgroud)
在检查了头文件后,例如CGEventType的定义位置,我找不到任何常量的提及,这些常量以我能够在 ObjC 实现中执行的形式执行任何操作。
现在我可能可以通过查找常量的值并像这样处理它来解决这个问题,但我非常不想这样做。我宁愿改用IOKit重写。看起来它基本上被定义为 (~0),但就像前面提到的,我宁愿不那样硬编码。

每隔几周我就会使用仪器检查我的应用程序内存泄漏(非常棒的工具).正如您在屏幕截图中看到的那样,其中存在一些内存泄漏.我曾经忽略了这些因为我从来不知道为什么他们在那里而且他们似乎并没有增加.
它们是在发布时创建的......这就是我所知道的.任何关于如何弄清楚我的代码库或部分代码导致这些泄漏的想法?
- 谢谢
我为mac制作了一个xfire客户端(名为BlackFire - > http://www.macxfire.com),随着时间的推移,它一直在使用越来越多的内存,即使没有做那么多.
我使用instruments :: leaks运行应用程序并且它根本没有显示任何泄漏(当它确实快速修复它们时).不知怎的,它仍然继续使用更多的ram,就像它应该或者idk一样.我已经最小化了自动释放对象的使用,并且我使用构建和分析检查了任何泄漏,但没有结果.
在数据库中插入内容时,zend会通过以下示例转义给出的输入:
$options = array(
'bla'=>input
);
$this->insert($options);
Run Code Online (Sandbox Code Playgroud)
- 我仍在检查内容的长度和有效性,部分使用Zend_Form
我想绘制一个自定义的NSWindow,它允许我甚至在顶部栏(交通灯按钮和标题栏的顶部)上添加子视图.
当我使用透明窗口并使用自定义视图来模仿NSWindow时,我需要自己实现这么多东西,我认为应该有更好的方法来实现这一目标.
cocoa ×9
objective-c ×9
macos ×6
xcode ×5
appkit ×4
cocoa-touch ×2
instruments ×2
memory-leaks ×2
allocation ×1
html ×1
ios ×1
nsobject ×1
nssplitview ×1
php ×1
scroll ×1
security ×1
swift ×1
uiview ×1