小编Alv*_*var的帖子

为什么在 SwiftUI 中,当用 .sheet 呈现模态视图时,init() 被调用两次

我正在使用以下代码在 WatchOS 上生成情况

struct Modal : View {
    @Binding var showingModal : Bool
    
    init(showingModal : Binding<Bool>){
        self._showingModal = showingModal
        print("init modal")
    }
    
    var body: some View {
        Button(action: {
            self.showingModal.toggle()
        }, label: {
            Text("TTTT")
        })
    }
}

struct ContentView: View {
    @State var showingModal = false
    var body: some View {
        Button(action: {
            self.showingModal.toggle()
        }, label: {
            Text("AAAA")
        }).sheet(isPresented: $showingModal, content: {Modal(showingModal: self.$showingModal)})
    }
}
Run Code Online (Sandbox Code Playgroud)

每次我按下主视图中的按钮以使用 .sheet 调用模态时,都会创建模态视图的两个实例。

有人可以解释这种现象吗?

iphone ios swift swiftui

13
推荐指数
2
解决办法
1891
查看次数

如何在Heroku中运行webapp2(appengine)?

这是我的项目文件

Procfile

web: python main.py
Run Code Online (Sandbox Code Playgroud)

requirement.txt

webapp2==2.3
Run Code Online (Sandbox Code Playgroud)

main.py

import webapp2

class MainHandler(webapp2.RequestHandler):
    def get(self):
        self.response.write("hello")


app = webapp2.WSGIApplication([
    ('/', MainHandler)
], debug=True)
Run Code Online (Sandbox Code Playgroud)

仍然heroku发出应用程序错误

我的项目有什么问题?

python google-app-engine heroku webapp2

3
推荐指数
1
解决办法
843
查看次数

如何将2 ^ 63添加到带符号的64位整数并将其转换为无符号的64位整数,而不使用中间的128位整数

我正在编写一个将有符号整数空间映射到无符号整数空间的函数.但是我想要正数之前的负数映射.

我想这样工作的方法就是说我们有一个带符号的64位整数a.

  1. 转换a为128位
  2. 添加2 63a
  3. 将其转换为无符号64位

但问题是,我正在使用的C实现没有128位整数.

有没有有效的方法呢?

c

3
推荐指数
1
解决办法
320
查看次数

为什么大多数JavaScript框架都使用这么短的变量名?

我被告知多年来使用一个有意义的变量名称.然而,每次我试图调试一些JavaScript代码和挖掘到第三方框架的时候,我发现每一个JavaScript框架,将有变量的名称,如a,ac,b,c.

为什么这么短的变量名称是常见的做法?这似乎会损害可维护性.

javascript naming minify

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

在基于范围的 for 循环中获取无效引用

auto& kphist = this->kphist;
for (auto& it : kphist) {

    it.second.aging(); // EXC-BAD-ACCESS
    if(it.second.age > LAST_DAY){
        kphist.erase(it.first);
        continue;
    }

}
Run Code Online (Sandbox Code Playgroud)

kphist 是私人成员

Class A{
private:
    unordered_map<int, KeyPointHistory> kphist;
} 
Run Code Online (Sandbox Code Playgroud)

调试器显示 kphist 中的所有项目都是有效的,怎么可能在 for 循环内有错误的引用。可能会出现什么问题?

c++ for-loop c++11

0
推荐指数
1
解决办法
859
查看次数

是否 swift 管理我从 CVPixelBufferCreate 创建的 CVPixelBuffer 的内存?

假设我想从相机输出中存储一帧

let imageBuffer:CVPixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)
some_list.append(imageBuffer.copy())
Run Code Online (Sandbox Code Playgroud)

**

这是通过扩展到 CVPixelBuffer 定义复制函数的方式

extension CVPixelBuffer {
    func copy() -> CVPixelBuffer {
        precondition(CFGetTypeID(self) == CVPixelBufferGetTypeID(), "copy() cannot be called on a non-CVPixelBuffer")
        var _copy : CVPixelBuffer?
        CVPixelBufferCreate(
            nil,
            CVPixelBufferGetWidth(self),
            CVPixelBufferGetHeight(self),
            CVPixelBufferGetPixelFormatType(self),
            CVBufferGetAttachments(self, CVAttachmentMode.shouldPropagate),
            &_copy)
        guard let copy = _copy else { fatalError() }
        CVPixelBufferLockBaseAddress(self, CVPixelBufferLockFlags.readOnly)
        CVPixelBufferLockBaseAddress(copy, CVPixelBufferLockFlags(rawValue: 0))
        let dest = CVPixelBufferGetBaseAddress(copy)
        let source = CVPixelBufferGetBaseAddress(self)
        let height = CVPixelBufferGetHeight(self)
        let bytesPerRow = CVPixelBufferGetBytesPerRow(self)
        memcpy(dest, source, height * bytesPerRow)
        CVPixelBufferUnlockBaseAddress(copy, CVPixelBufferLockFlags(rawValue: 0))
        CVPixelBufferUnlockBaseAddress(self, CVPixelBufferLockFlags.readOnly) …
Run Code Online (Sandbox Code Playgroud)

avfoundation avcapturesession swift

0
推荐指数
1
解决办法
715
查看次数