小编Tra*_*ggs的帖子

如何为UICollectionView启用缩放

我很迷惑.我有一个UICollectionView.我有自己的UICollectionViewLayout子类(哇,我没有使用Flow的东西).UICollectionViewinstance是的子类UIScrollView.它添加了多个子视图.但是像Properly缩放包含许多子视图的UIScrollView这样的问题似乎说可滚动视图应该只有一个子视图来"滚动整个视图".似乎与我的婚姻不一致.我的意思是为什么Apple给我一个用于制作多个子视图的框架,然后将它们全部放在滚动视图中,这不应该运行良好?

所以我很好奇我应该如何使我的整体UICollectionView(它在一个UICollectionViewController子类中)可缩放.我是否需要实现各种委托方法并使布局对象无效/操作,根据我在布局中保留的某些属性派生布局?还是有其他机制?

除此之外,为什么它不能只是操纵zoomScale财产并为我自动执行?或者我在这里错过了一些微妙的东西?

uiscrollview ios pinchzoom uicollectionview ios7

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

如果任何线程有异常,则导致 python 退出

我有一个 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)。我会在那里尝试一些解决方法。

虽然该示例显示了我创建的一个主线程和一个辅助线程,但我对我可能正在运行启动线程的其他人的库的一般情况感兴趣。

multithreading python-3.x

11
推荐指数
2
解决办法
6237
查看次数

pymongo获取收集字节使用情况统计信息的方法?

MongoDB的应用常见问题提到这短短的字段名是可用于小文件的技术.这让我想到,"无论如何,这是一个小文件?"

我正在使用pymongo,有没有什么方法可以编写一些python来扫描集合,并了解字段描述符使用的字节与用于实际字段数据的字节的比率?

我对每个文档的基本字节开销感到非常好奇.

python mongodb pymongo python-3.x

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

无法在Swift中扩展闭包?

从扩展中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中的其他东西一样.

closures swift swift2

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

Kotlin when(Pair<>),还有其他办法吗?

我有一个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)

kotlin

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

为了你的(或)int的大小?

我用Google搜索,并惊讶地发现没有指南,经验法则,样式等.当在C中声明(带符号或未签名)整数时,可以选择只使用处理器为int定义的任何内容,或者一个可以指定宽度(例如uint16_t,int8_t,uint32_t等等).

在做桌面/专用C程序时,我非常倾向于"只使用默认值",除非对我来说指定宽度非常重要(例如"这是一个32位ID").

最近完成了更多的微控制器工作(pic18和AVR),我倾向于调整所有尺寸,只是因为你变得如此空间良知.

现在我正在研究一些Pic32代码(没有操作系统),我发现自己在两个极端之间徘徊.

我很好奇人们制定了什么样的量规(如果有的话)可以帮助他们决定何时调整它们的大小,何时使用默认值?为什么?

c embedded coding-style

9
推荐指数
1
解决办法
195
查看次数

AFNetworking-2 waitUntilFinished无法正常工作

我知道还有另外一个类似的问题,但它适用于较旧版本的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)

objective-c ios afnetworking-2

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

我可以在Linux上打开一个命名管道,用于在Python中进行非阻塞写入吗?

我使用创建了一个fifo文件mkfifo.是否可以不受阻塞地打开/写入?我想知道是否有读者是不可知论者.

下列:

with open('fifo', 'wb', 0) as file:
    file.write(b'howdy')
Run Code Online (Sandbox Code Playgroud)

只是在开放时停止,直到我cat fifo从另一个外壳做.我希望我的程序能够取得进步,无论数据消费者是否正在观看.

我应该使用不同的Linux机制吗?

python linux named-pipes

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

如何/如何使用 python 和加密模块生成 PKCS#12 文件?

如何/如何使用 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 库,可以做到这一点?

python pkcs#12 python-3.x python-cryptography

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

寻找 XCode14 的 iOS 15.7 支持文件

我的 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 的“下载”窗口时,它只是一个空白窗口。

xcode ios xcode14 ios15.7

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