Tag: cocoa

C:关于rand,random和arc4random的确定真相

关于这个主题有很多相互矛盾的信息。 所以,让我们尝试就明确的答案达成一致: C中这些随机数生成器中的哪一个创建了更好的随机性:rand,random或arc4random? 注意:只是为了使问题清楚,这不是关于真正随机性的问题,它只是那些3之间的冲突。 正如所指出的那样,这个问题没有多大意义,因为这不是关于C,而是关于一个特定的实现,在我的例子中,cocoa(更具体地说是iphone sdk,但我的猜测是它们是相同的,因为这些functiongo)。 不过,这里有一些有用的信息。 我通过实现arc4random得出结论,主要是因为它易于使用(不需要播种),这是一个没有人指出的重要因素。 我正在关闭这个问题,并为cocoa开发人员添加cocoa标记,以寻找有关RN​​G的信息。 非常感谢那些贡献的人,并为这种困惑感到抱歉。

我真的需要libgcc吗?

我一直在Mac OS X 10.6上使用GCC 4.6.2。 我在编译时使用-static-libgcc选项,否则我的二进制文件在系统上查找libgcc并且我不确定OS X上是否支持GCC 4.2。这样可以正常工作,但为什么我甚至需要libgcc? 我读了它并且GNU文档说它包含“目标处理器不能直接执行的算术运算”。 我怎么知道这些操作是什么? 为什么它们如此复杂以至于我需要包含这个库? 为什么GCC不能直接优化代码而不必诉诸这些库函数? 我有点困惑。 对此有任何见解将不胜感激!

如何在Mac上检测耳机插孔中的某些东西?

有没有办法检测是否有东西插入Mac的耳机插孔使用c或objective-c ? 谢谢

如何模拟os x上的低级按键?

我试图以编程方式生成键盘keydown和keyup事件。 我目前正在使用CGPostKeyboardEvent来执行此操作,但我正在寻找一种在较低级别执行此操作的方法。 我看过DDHidLib,但无法找到创建假事件的方法。 有人可以帮忙吗? 更新 :感谢weichsel的建议,我现在正在创建一个关键事件,其中包含以下内容: CGEventRef e = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)52, true); CGEventPost(kCGSessionEventTap, e); CFRelease(e); 我在这里找到了 。 但是 ,我的问题仍然存在,所以我会详细说明一下。 我希望发送按键的应用程序(第三方)实现DDHidLib的键捕获function: – (void) ddhidKeyboard: (DDHidKeyboard *) keyboard keyDown: (unsigned) usageId; 并且永远不会使用当前方法调用它。 我的猜测是,使用CGEventCreateKeyboardEvent模拟的键值太高,无法通过ddhidKeyboard捕获:keyDown。 所以我要做的是在足够低的级别创建keydown事件,以便ddhidKeyboard:keyDown识别它。

在C enum和XML之间转换

在XML中存储枚举并再次读取它的最简洁方法是什么? 说我有: enum ETObjectType {ETNormalObjectType, ETRareObjectType, ETEssentialObjectType}; …我想要一个变量, enum ETObjectType objectType = ETNormalObjectType; ,并将其转换为如下所示的XML: ETNormalObjectType 。 目前我正在做的是这样的: NSString* const ETObjectTypeAsString[] = {@”ETNormalObjectType”,@”ETRareObjectType”,@”ETEssentialObjectType”}; [anXMLElement addChild:[NSXMLElement elementWithName:@”objectType” stringValue:ETObjectTypeAsString[objectType]]]; ……但这并不完全理想; 每次更改枚举时,我都不满意更新两个列表。 但这是可以接受的。 更糟糕的是读回XML,我目前正在这样做: if ([[[anXMLElement childNamed:@”objectType”] stringValue] isEqualToString:@”ETRareObjectType”]) { [self initObjectType:ETRareObjectType]; } else if ([[[anXMLElement childNamed:@”objectType”] stringValue] isEqualToString:@”ETEssentialObjectType”]) { [self initObjectType:ETEssentialObjectType]; } else { [self initObjectType:ETNormalObjectType]; } 呸! […]

如何将WebSockets合并到Cocoa应用程序中

我正在开发一个涉及聊天元素的Cocoa应用程序。 我考虑过的一种方法是使用Websockets来处理客户端 – 服务器通信。 这将是特别理想的,因为聊天也将显示在网站上,并且使用Websockets可以使实现非常简单。 那么:是否可以使用WebView元素,并在其中使用Websockets? (我知道Safari还不支持Websockets,所以我想这不可能吗?) 如果失败了,是否有任何用于C,Objective C或我可以在我的应用程序中成功嵌入的任何其他语言的Websocket客户端库? 建议欢迎。

从C调用Cocoa API

我不知道这是否可行,但是在普通C中使用代码,是否可以从中调用Cocoa API? 像#include 类的东西,添加相应的库并去寻找它? 谢谢您的帮助

将一个双精度数限制为两位小数

如何实现从double到字符串的以下转换: 1.4324 => “1.43” 9.4000 => “9.4” 43.000 => “43” 即我想要舍入到小数位但不想要任何尾随零,即我不想要 9.4 => “9.40” (wrong) 43.000 => “43.00” (wrong) 所以我现在使用的这段代码不起作用,因为它显示多余的零: [NSString stringWithFormat: @”%.2f”, total]