小编Vam*_*mos的帖子

"无头"是什么意思?

在阅读QTKit应用程序编程指南时,我遇到了"无头环境"一词 - 这是什么意思?这是段落:

...包括具有GUI的应用程序和旨在"无头"环境中运行的工具.例如,您可以使用该框架编写操作QuickTime影片文件的命令行工具.

terminology headless

76
推荐指数
3
解决办法
3万
查看次数

为CSS目的使用id属性的原因是什么?

我一直使用该class属性,从不id 用于CSS选择和样式.我知道id必须是唯一的,但这似乎不是将它用于CSS的理由.

我使用该id属性的唯一原因是JavaScript和表单标签.

我发现混合idclassCSS的目的可能导致混淆,对我而言,这是强制分离风格和行为的好方法.

是否有充分的理由id用于CSS目的?有没有可以实现什么id,不能做用class

评论我发现有用/有趣

  • 你可以对课程说同样的话.有很多JavaScript可以(并且必须)定位特定类的元素.从行为的角度来看,改变那些实例中的类同样存在问题. - AaronSieb
  • ID在级联中具有与类不同的特异性. - Killroy
  • 使用ID进行样式化是有意义的,如果它是一个没有重复的元素,特别是如果它出现在所有/大多数页面中 - RichN

html javascript css

14
推荐指数
5
解决办法
1034
查看次数

lockFocus和unlockFocus实际上做了什么?

警告:我是Cocoa的新手.

我正在阅读Hillegass的"Cocoa Programming For Mac OS X".

在p.301上写道:

要使图形显示在图像上而不是屏幕上,必须先将焦点锁定在图像上.绘图完成后,您必须解锁焦点.

我的代码,里面-(void)mouseDragged:(NSEvent *)theEventNSView情况如下:

[resizedImage lockFocus];
[sourceImage drawInRect: NSMakeRect(0, 0, resizeWidth, resizeHeight) fromRect: NSMakeRect(0, 0, originalSize.width, originalSize.height) operation: NSCompositeSourceOver fraction: 1.0];
[resizedImage unlockFocus];
Run Code Online (Sandbox Code Playgroud)

没有锁定/解锁,这不起作用,但我仍然不明白究竟发生了什么.

我看到第二行代码没有提及,resizedImage这意味着当我使用lockFocus它时确保发生的任何"绘图"发生在那里?有人能更好地解释一下吗?

cocoa drawing

12
推荐指数
2
解决办法
5412
查看次数

Cloudkit仪表板意外的服务器错误

当我想使用Cloudkit时,我发现我无法通过Cloudkit仪表板管理数据.该页面给我一条消息"意外的服务器错误".我怎么解决这个问题?这里显示了此错误截图.

在此输入图像描述

[更新]

完整错误日志:

ERROR TITLE意外的服务器错误.

真的很致命

TYPE服务器

应用程序名称仪表板

建造编号15BDev63

时间周二2015年3月24日08:43:06 GMT + 0100(CET)(1427182986565)

HOST icloud.developer.apple.com

用户代理Mozilla/5.0(Macintosh; Intel Mac OS X 10_10_2)AppleWebKit/600.4.10(KHTML,类似Gecko)版本/ 8.0.4 Safari/600.4.10

环境未知

最近的日志留言星期二,2015年3月24日7时43分06秒格林尼治标准时间:信息: - >请求1:GET到 https://ckdashboardws.icloud.apple.com/bootstrap?request_uuid=e7516168-dcfe-4ed5-aa17-dc3a5a97ffb6,headers:Content-Type = text/plain,body:(empty)< - 响应1:500(294ms),标题:Cache-Control = no-cache,no-store,private,Content-Type = application/json ; 字符集= UTF-8,X-苹果-请求- UUID = f05681b8-1f1c-4af5-a534-5f6531c5a463体:{ "errorReason": "内部服务器错误", "错误码" 500 "requestUUID":"f05681b8-1f1c -4af5-a534-5f6531c5a463"}星期二,2015年3月24日07:43:06 GMT:DEBUG:CloudKit:调用ErrorCatcher对话框.星期二,2015年3月24日7时43分06秒GMT:DEBUG:SC.Module:试图加载'cloudkit/error_catcher'星期二,2015年3月24日7时43分06秒GMT:DEBUG:SC.Module:模块'cloudkit/error_catcher'没有加载,现在加载.星期二,2015年3月24日7时43分06秒格林尼治标准时间:DEBUG:SC.Module:在'cloudkit/error_catcher'加载CSS文件- >"/applications/dashboard/15BDev63/cloudkit/error_catcher/15BDev63/en-us/stylesheet.css '星期二,2015年3月24日07:43:06 GMT:DEBUG:SC.Module:在'cloudkit/error_catcher'中加载JavaScript文件 - >'/ applications/dashboard/15BDev63/cloudkit/error_catcher/15BDev63/en-us/javascript. js'Tue,2015年3月24日07:43:06 GMT:DEBUG:SC.Module:模块'cloudkit/error_catcher'已完成加载.星期二,2015年3月24日07:43:06 GMT:DEBUG:SC.Module:评估和调用'cloudkit/error_catcher'的回调.星期二,2015年3月24日07:43:06 GMT:DEBUG:SC.Module:模块'cloudkit/error_catcher'已完成加载,调用回调.

ios cloudkit

10
推荐指数
1
解决办法
1284
查看次数

是否所有用户都使用相同的订阅接收公共数据库订阅通知?

我已经设置了CKSubscription*,以便我收到记录类型的更改.

我正在使用公共数据库.

当我使用相同的用户(相同的iCloud帐户)进行测试时,我会收到通知.

如果我使用其他用户(不同的iCloud帐户),我不会收到通知.

订阅是否仅适用于同一用户的设备之间?

以下是描述订阅的文档:

使用CKSubscription对象来跟踪服务器上发生的更改.订阅的作用类似于服务器上的持久查询,可以跟踪记录的创建,删除和修改.发生更改时,它们会触发推送通知的传递,以便您的应用可以正确响应.

https://developer.apple.com/library/ios/documentation/CloudKit/Reference/CKSubscription_class/index.html#//apple_ref/occ/cl/CKSubscription

无论哪个用户编辑记录,我都希望收到通知,并且订阅谓词仍应匹配.

UPDATE

*每个用户都有一个具有相同谓词的订阅,主要关注具有特定属性值的单个recordType.

此订阅的有效负载仅用于推送shouldSendContentAvailable = YES.

文件内容如下:

当此属性为YES时,服务器在推送通知的有效负载中包含content-available标志.该标志会导致系统唤醒或启动当前未运行的应用程序.然后,应用程序将获得后台执行时间,以下载与推送通知相关的任何数据,例如更改的记录集.如果应用程序已在前台运行,则包含此标志不会产生额外影响,并且通知将传递给应用程序代理以便照常处理.

recordType的安全权限是:

在此输入图像描述

进一步更新

检查设备未接收推送的日志,并且看到:

apsd[85]: Silent Push: Deny app not available
Run Code Online (Sandbox Code Playgroud)

重启设备,现在工作正常!

cloudkit

8
推荐指数
1
解决办法
2042
查看次数

什么可能导致代码覆盖启用构建失败?

摘要

我正在尝试从我的项目中获取代码覆盖率报告.但是,当我尝试构建和运行测试时,在派生数据文件夹中没有创建CodeCoverage文件夹.

我怎么这么做?

我正在运行xcodebuild,如下所示:

xcodebuild \ -workspace <some_workspace> \ -scheme <some_scheme> \ -destination <some_destination> \ -derivedDataPath <some_path> \ -enableCodeCoverage YES \ build test

问题是什么?

对于我的工作区/项目,它最后会在一行中失败:

xcodebuild: error: Failed to build workspace <some_workspace> with scheme <some_scheme>. Reason: Could not determine bundle identifier for <some_test_target>'s TEST_HOST: "<some_path>/Build/Intermediates/CodeCoverage/Products/Debug-iphonesimulator/<some_product>.app"

起初它似乎与TEST_HOST问题直接相关,但事实并非如此.

根本没有CodeCoverage文件夹:

<some_path>/Build/Intermediates/CodeCoverage

我试过了什么?

我尝试了一个干净的新项目,同样运行相同的xcodebuild命令,成功.该范围内Build/Intermediates/的文件夹所在的CodeCoverage文件夹.

但是,在我自己的项目中,它更复杂,该Build/Intermediates/文件夹包含一堆*.build文件夹(例如,与应用程序和各种框架相关HockeySDK.build),PrecompiledHeaders但没有CodeCoverage文件夹.

在查看输出时,xcodebuild我从未看到CodeCoverage对项目文件夹的引用.但是,对于测试项目,首先提到的是:

Write auxiliary files /bin/mkdir -p /<some_path>/Build/Intermediates/CodeCoverage/Intermediates/<some_project>.build/Debug-iphonesimulator/<some_project>.build/Objects-normal/x86_64

对于我的项目,我看到:

Write …

xcode code-coverage xcodebuild ios xcode8

6
推荐指数
1
解决办法
602
查看次数

缓存表结果可以获得更好的性能......怎么样?

首先,我运行的网站是托管的,我没有权限安装像memcached这样有趣的东西.

我有几个显示HTML表格的网页.这些HTML表的数据是使用昂贵且复杂的MySQL查询生成的.我尽可能地优化了查询,并将索引放在适当的位置以提高性能.问题是,如果我的网站流量很高,MySQL服务器会受到重创,并且会遇到困难.

有趣的是 - MySQL表中的数据不会经常变化.事实上,只有在每隔几周发生一次"事件"后,它才会发生变化.

所以我现在所做的就是:

  1. 将生成的HTML表保存到文件中
  2. 访问URL时,检查保存的文件(如果存在)
  3. 如果文件早于1小时,则运行查询并保存新文件(如果未输出文件)

这确保了对于绝大多数请求,页面加载速度非常快,并且数据最多可以是1小时.为了我的目的,这不是太糟糕.

我真正想要的是保证如果数据库中的任何数据发生更改,则会删除缓存文件.这可以通过查找在表上执行任何更改查询的所有脚本并添加代码来删除缓存文件来完成,但它很脆弱,因为所有未来的更改都需要处理此机制.

有一种优雅的方式来做到这一点?

除了vanilla PHP和MySQL(最新版本)之外我什么都没有 - 我想玩memcached,但我不能.

php mysql

4
推荐指数
2
解决办法
1166
查看次数