我很迷惑.我有一个UICollectionView
.我有自己的UICollectionViewLayout
子类(哇,我没有使用Flow的东西).UICollectionView
instance是的子类UIScrollView
.它添加了多个子视图.但是像Properly缩放包含许多子视图的UIScrollView这样的问题似乎说可滚动视图应该只有一个子视图来"滚动整个视图".似乎与我的婚姻不一致.我的意思是为什么Apple给我一个用于制作多个子视图的框架,然后将它们全部放在滚动视图中,这不应该运行良好?
所以我很好奇我应该如何使我的整体UICollectionView
(它在一个UICollectionViewController
子类中)可缩放.我是否需要实现各种委托方法并使布局对象无效/操作,根据我在布局中保留的某些属性派生布局?还是有其他机制?
除此之外,为什么它不能只是操纵zoomScale
财产并为我自动执行?或者我在这里错过了一些微妙的东西?
我有一个 python3 程序,它启动第二个线程(除了主线程)来异步处理一些事件。理想情况下,我的程序可以正常运行,并且永远不会有未处理的异常。但事情发生了。当/如果有异常,我希望整个解释器以错误代码退出,就好像它是单个线程一样。那可能吗?
现在,如果在生成的线程上发生异常,它会打印出通常的错误信息,但不会退出。主线程一直在运行。
import threading
import time
def countdown(initial):
while True:
print(initial[0])
initial = initial[1:]
time.sleep(1)
if __name__ == '__main__':
helper = threading.Thread(target=countdown, args=['failsoon'])
helper.start()
time.sleep(0.5)
#countdown('THISWILLTAKELONGERTOFAILBECAUSEITSMOREDATA')
countdown('FAST')
Run Code Online (Sandbox Code Playgroud)
该countdown
最终将无法访问[0]
,因为它已经清空引起从字符串IndexError: string index out of range
错误。目标是无论主程序还是辅助程序先死,整个程序都会死,但堆栈跟踪信息仍然输出。
经过一番挖掘,我的想法是使用sys.excepthook
. 我添加了以下内容:
def killAll(etype, value, tb):
print('KILL ALL')
traceback.print_exception(etype, value, tb)
os.kill(os.getpid(), signal.SIGKILL)
sys.excepthook = killAll
Run Code Online (Sandbox Code Playgroud)
如果主线程是第一个死亡的线程,则此方法有效。但在另一种情况下则不然。这似乎是一个已知问题(https://bugs.python.org/issue1230540)。我会在那里尝试一些解决方法。
虽然该示例显示了我创建的一个主线程和一个辅助线程,但我对我可能正在运行启动线程的其他人的库的一般情况感兴趣。
在MongoDB的应用常见问题提到这短短的字段名是可用于小文件的技术.这让我想到,"无论如何,这是一个小文件?"
我正在使用pymongo,有没有什么方法可以编写一些python来扫描集合,并了解字段描述符使用的字节与用于实际字段数据的字节的比率?
我对每个文档的基本字节开销感到非常好奇.
从扩展中Bool
感到兴奋,我认为在Swift中扩展闭包会很有趣(我们在Smalltalk中完全没有大惊小怪,所以为什么不呢?).
这是我的游乐场:
typealias NiladicClosure = () -> ()
extension NiladicClosure {
var theAnswerToLife:Int {
return 42
}
}
let block:NiladicClosure = {}
block.theAnswerToLife
Run Code Online (Sandbox Code Playgroud)
这说不起作用NiladicClosure does not have a member named 'theAnswerToLife'
.在控制台中查看,我获得了更多信息:
Playground execution failed: /var/folders/2k/6y8rslzn1m95gjpg534j7v8jzr03tz/T/./lldb/33726/playground119.swift:3:1: error: non-nominal type 'NiladicClosure' cannot be extended
extension NiladicClosure {
^ ~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)
什么是non-nominal type
?有模式/解决方法吗?
其他类似的问题早于Swift 2,也足够具体,人们为特定的扩展提供了变通方法.我对Swift闭包是否是可以添加其他行为的第一类对象感兴趣,就像Swift中的其他东西一样.
我有一个when
想要匹配两件事的构造:
when (activeRequest.verb to activeRequest.resourceType) {
GET to "all" -> allGet()
PUT to "foo" -> fooPut()
GET to "foo" -> fooGet()
POST to "bar" -> barPost()
GET to "bar" -> barGet()
COPY to "bar" -> barCopy()
DELETE to "bar" -> barDelete()
else -> logMismatch()
}
Run Code Online (Sandbox Code Playgroud)
使用to
对构造函数是执行此操作的唯一方法吗?Pair 的使用似乎很奇怪(尽管它有效)。我很难找到它,因为代码片段像
for ((key, value) in hashMap) {
println("$key $value)
}
Run Code Online (Sandbox Code Playgroud)
让我觉得我应该能够在when
代码中做类似的事情,例如
when (activeRequest.verb, activeRequest.resourceType) {
(GET, "all") -> allGet()
(PUT, "foo") -> fooPut()
...
else -> logMismatch()
} …
Run Code Online (Sandbox Code Playgroud) 我用Google搜索,并惊讶地发现没有指南,经验法则,样式等.当在C中声明(带符号或未签名)整数时,可以选择只使用处理器为int定义的任何内容,或者一个可以指定宽度(例如uint16_t
,int8_t
,uint32_t
等等).
在做桌面/专用C程序时,我非常倾向于"只使用默认值",除非对我来说指定宽度非常重要(例如"这是一个32位ID").
最近完成了更多的微控制器工作(pic18和AVR),我倾向于调整所有尺寸,只是因为你变得如此空间良知.
现在我正在研究一些Pic32代码(没有操作系统),我发现自己在两个极端之间徘徊.
我很好奇人们制定了什么样的量规(如果有的话)可以帮助他们决定何时调整它们的大小,何时使用默认值?为什么?
我知道还有另外一个类似的问题,但它适用于较旧版本的AFNetworking,并且无论如何都没有真正回答它.
我有以下代码:
AFHTTPRequestOperationManager* manager = [AFHTTPRequestOperationManager manager];
manager.securityPolicy.allowInvalidCertificates = YES;
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setAuthorizationHeaderFieldWithUsername: currentUser() password: currentPassword()];
__block NSDictionary* response = nil;
AFHTTPRequestOperation* operation = [manager
GET: @"https://10.20.30.40:8765/foobar"
parameters: [NSDictionary dictionary]
success:^(AFHTTPRequestOperation* operation, id responseObject){
response = responseObject;
NSLog(@"response (block): %@", response);
}
failure:^(AFHTTPRequestOperation* operation, NSError* error){
NSLog(@"Error: %@", error);}
];
[operation waitUntilFinished];
NSLog(@"response: %@", response);
...
Run Code Online (Sandbox Code Playgroud)
如果我运行它,我将在日志中看到的是:
2013-12-09 09:26:20.105 myValve[409:60b] response: (null)
2013-12-09 09:26:20.202 myValve[409:60b] response (block): {
F00005 = "";
F00008 = "";
F00013 …
Run Code Online (Sandbox Code Playgroud) 我使用创建了一个fifo文件mkfifo
.是否可以不受阻塞地打开/写入?我想知道是否有读者是不可知论者.
下列:
with open('fifo', 'wb', 0) as file:
file.write(b'howdy')
Run Code Online (Sandbox Code Playgroud)
只是在开放时停止,直到我cat fifo
从另一个外壳做.我希望我的程序能够取得进步,无论数据消费者是否正在观看.
我应该使用不同的Linux机制吗?
如何/如何使用 python 和加密模块生成 PKCS#12 文件?
使用上述模块为私钥生成 .pem 文件的内容非常简单:
keyPEMBytes = privateKey.private_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.TraditionalOpenSSL,
encryption_algorithm=serialization.NoEncryption())
Run Code Online (Sandbox Code Playgroud)
也很容易为关联的证书生成 .cer/.pem 文件的内容:
certBytes = certificate.public_bytes(encoding=serialization.Encoding.PEM)
Run Code Online (Sandbox Code Playgroud)
但是我需要将它们(和它们的链)整合到一个 .p12(PKCS12 文件)中。所述模块记录了如何解析/使用 PKCS12 格式,但没有(我能找到的)关于如何生成它们的信息。
不过,我对 PKI 内容的理解是偶然的,所以也许我只是没有在文档中搜索正确的关键字?
我可以使用 Linux 在命令行中创建 .p12 文件
openssl pkcs12 -export -out myIdentity.p12 -inkey myPrivKey.pem -in myCert.crt -certfile myCertChain.crt
Run Code Online (Sandbox Code Playgroud)
所以我可以用 subprocess/cmd 来包装这样的调用,并用临时文件/管道来处理。不过,我希望将其全部保存在内存/python 中。
是否有我应该考虑的不同的 python TLS 库,可以做到这一点?
我的 iPhoneXR 更新到 15.7,XCode 更新到 14。这发生在 MacOS 更新时,所以我想知道 XCode 更新是否有问题。现在我无法对我的手机进行编程。
寻找
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/
Run Code Online (Sandbox Code Playgroud)
没有15.7。但是各种 github 存储库都有各种支持文件,但没有一个包含 15.7。这些东西有存放的地方吗?
当我打开 XCode 的“下载”窗口时,它只是一个空白窗口。
ios ×3
python ×3
python-3.x ×3
c ×1
closures ×1
coding-style ×1
embedded ×1
ios15.7 ×1
ios7 ×1
kotlin ×1
linux ×1
mongodb ×1
named-pipes ×1
objective-c ×1
pinchzoom ×1
pkcs#12 ×1
pymongo ×1
swift ×1
swift2 ×1
uiscrollview ×1
xcode ×1
xcode14 ×1