对于独立Mac开发者的问题:
我如何以非邪恶的方式实施30天的时间试验?将计数器放在prefs中是不可取的,因为每月擦除一次prefs对普通用户来说不是问题.将计数器放在隐藏文件的某个地方听起来有点狡猾 - 作为一个用户,我讨厌当应用程序将随机文件洒在我的硬盘上时.有任何想法吗?
设置:
Django 1.1.2,MySQL 5.1
问题:
Blob.objects.filter(foo = foo) \
.filter(status = Blob.PLEASE_DELETE) \
.delete()
Run Code Online (Sandbox Code Playgroud)
这个片段导致ORM首先生成一个SELECT * from xxx_blob where ...查询,然后执行DELETE from xxx_blob where id in (BLAH);BLAH是一个非常长的id列表.由于我删除了大量的blob,这使得我和DB都非常不满意.
是否有一个原因?我不明白为什么ORM无法将上面的代码段转换为单个DELETE查询.有没有办法优化这个而不诉诸原始SQL?
我正在尝试为我的应用程序的文档类型注册一个图标.在阅读声明新的统一类型标识符并查看后,/Developer/Examples/Sketch我想出了类似这样的内容Info.plist:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSItemContentTypes</key>
<array>
<string>com.mycompany.myextension</string>
</array>
<key>NSDocumentClass</key>
<string>NSString</string>
</dict>
</array>
...
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeDescription</key>
<string>Blah blah blah</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeIconFile</key>
<string>My-file-icon.icns</string>
<key>UTTypeIdentifier</key>
<string>com.mycompany.myextension</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>myextension</string>
</array>
</dict>
</dict>
</array>
Run Code Online (Sandbox Code Playgroud)
现在,一切都很好,花花公子,即当我点击带有我的扩展名的文件等时我的程序被打开.但是,文档图标没有在操作系统中注册,即我看到一个丑陋的空白图标而不是我的美丽My-file-icon.icns.我怀疑我在上面的plist中遗漏了什么,有什么想法吗?
从python日志记录文档的第15.7.4节:
注意每当一个事件被记录到该处理程序(使用调试(),信息(),等等),只要一个事件是由处理机发出的附接至处理滤波器进行协商,而附连到记录器的过滤器进行协商这意味着该事件已经由后代记录器生成的记录器不会被记录器的过滤器设置过滤,除非过滤器也已应用于这些后代记录器.
我不明白这个设计决定.将根记录器的过滤器应用于后代记录器也没有意义吗?
CGEventTapCreate当我的应用程序运行时,我正在使用iTunes"窃取"媒体键.我传递的回调中的代码CGEventTapCreate检查事件,如果发现它是媒体密钥之一,则向默认通知中心发布适当的通知.
现在,如果我发布"key up"事件的通知,这样可以正常工作.如果我为"关键"事件这样做,最终我的应用程序停止获取媒体键事件和iTunes接管.关于什么可能导致这个的任何想法?代码的相关部分如下
enum {
...
PlayPauseKeyDown = 0x100A00,
PlayPauseKeyUp = 0x100B00,
...
};
static CGEventRef event_tap_callback(CGEventTapProxy proxy,
CGEventType type,
CGEventRef event,
void *refcon)
{
if (!(type == NX_SYSDEFINED) || (type == NX_KEYUP) || (type == NX_KEYDOWN))
return event;
NSEvent* keyEvent = [NSEvent eventWithCGEvent: event];
if (keyEvent.type != NSSystemDefined) return event;
switch(keyEvent.data1)
{
case PlayPauseKeyUp: // <--- this works reliably
//case PlayPauseKeyDown: // <--- this will break eventually
post_notification(@"PlayPauseMediaKeyPressed", nil, nil);
return NULL;
... and so on …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的一个Puppet模块的模板中包含一个子模板.以下是我在基本模板中执行include的方法:
<%
def import(fname)
erb =
File.open(File.dirname(__FILE__) + "/" + fname) { |fp| ERB.new(fp.read) }
erb.run
end
%>
<%= import("subtemplate.erb") %>
Run Code Online (Sandbox Code Playgroud)
如果我使用erb命令行工具渲染它,这可以正常工作.但是,在Puppet运行期间,将默默忽略导入,即基本模板使用空白行渲染,其中渲染的子模板应该是.没有生成错误.
我究竟做错了什么?谢谢!
我有一些代码需要在应用程序终止时运行.我为NSApplicationWillTerminateNotification注册了我的控制器,如下所示:
[[NSNotificationCenter defaultCenter]
addObserver: self
selector: @selector(applicationWillTerminate:)
name: NSApplicationWillTerminateNotification
object: nil];
Run Code Online (Sandbox Code Playgroud)
现在,如果我启动我的应用程序并在前20秒内退出它, applicationWillTerminate就会被调用.如果我稍后退出该应用程序,则不会.我的应用程序中可能会导致此行为?我还试图将我的控制器设置为NSApplication的委托,但结果相同.有任何想法吗?
谢谢.
哦,这是XCode 3.2,Snow Leopard 10.6.1,使用10.5 SDK.在Debug和Release版本中都会发生.