小编Kam*_*l.S的帖子

从数据数组(coreData图像)创建Zip文件,并通过电子邮件通过.zip文件共享

我的CoreData中有(n)个数据(UIImage JPEG)。

let imageData: [Data]... 
Run Code Online (Sandbox Code Playgroud)

我已经有了这两个框架/ PodZipZIPFoundation

我对此有一些疑问:

  1. 我需要为每个imageData创建一个临时URL吗?
  2. 如果是,我必须tempURL.appendingPathExtension("jpg")在呼叫之前或之后添加到每个临时URL data.write(to: tempURL)

在那之后,我有了一个URL数组,所以我只需要创建一个Zip文件并共享它。但这不起作用,我的Mac上出现一个.zip-.cpgz循环。

 private func createURLsFrom(imageData: [ImageData]?) {
    var urlArray = [URL]()
    imageData?.forEach { imData in
        if let data = imData.imageData,
        let tempURL = NSURL.fileURL(withPathComponents: [NSTemporaryDirectory(), NSUUID().uuidString])?.appendingPathExtension("jpg") {

            do {
                try data.write(to: tempURL)
                urlArray.append(tempURL)

            } catch {...}
        }
    }
    self.createZipFile(urlArray: urlArray)
}



private func createZipFile(urlArray: [URL]) {
    if let zipURL = try? Zip.quickZipFiles(urlArray, fileName: "ZIP_Test1") {
        self.sendEmailWith(dataURL: zipURL)
    } else {...}
}


private …
Run Code Online (Sandbox Code Playgroud)

core-data uiimage nsdata swift

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

最小操作码大小 x86-64 strlen 实现

我正在研究我的代码高尔夫/二进制可执行文件的最小操作码大小x86-64 strlen实现,该实现不应该超过某个大小(为了简单起见,请考虑演示场景)。
一般想法来自这里,大小优化想法来自这里这里

输入字符串地址在rdi,最大长度不大于Int32

xor   eax,eax ; 2 bytes
or    ecx,-1  ; 3 bytes
repne scasb   ; 2 bytes
not   ecx     ; 2 bytes
dec   ecx     ; 2 bytes
Run Code Online (Sandbox Code Playgroud)

最终结果是ecx11字节总数。

问题是关于设置ecx-1

选项 1 已经说明

or ecx,-1 ; 3 bytes
Run Code Online (Sandbox Code Playgroud)

选项 2

lea ecx,[rax-1] ; 3 bytes 
Run Code Online (Sandbox Code Playgroud)

选项 3

stc         ; 1 byte
sbb ecx,ecx ; 2 bytes
Run Code Online (Sandbox Code Playgroud)

选项 4 ,可能是最慢的一个

push -1 …
Run Code Online (Sandbox Code Playgroud)

assembly x86-64 nasm yasm

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

Darwin 10.15 上的自修改代码导致“畸形的马赫形象”?

我有一个生成自修改代码的程序(如果您有兴趣,请参阅https://tigress.wtf/selfModify.html)。它在 x86 Darwin 和 Linux 上运行。在达尔文,我编译

gcc -g -segprot __TEXT rwx rwx self_modifying.c -o self_modifying.exe
Run Code Online (Sandbox Code Playgroud)

最近,这似乎不起作用,我明白了

dyld: malformed mach-o image: __TEXT segment maps start of file but is writable
Run Code Online (Sandbox Code Playgroud)

当我运行程序时。

我在 MacOS 10.15.3 上运行 clang 6.0.1 版。任何帮助,将不胜感激。

macos mach-o dyld self-modifying malformed

6
推荐指数
2
解决办法
839
查看次数

如何强制 WKWebView 忽略 iOS 上的硬件静音开关?

这里的要求是不管硬件静音开关如何播放各种网络声音,静音和未静音设备都必须在应用程序处于前台时继续在 HTML 页面中播放声音。deprecated 的解决方案UIWebView很简单

let localWebView = UIWebView(frame: .zero)
localWebView.allowsInlineMediaPlayback = true
localWebView.mediaPlaybackRequiresUserAction = false
Run Code Online (Sandbox Code Playgroud)

如何实现相同的行为WKWebView

ios swift wkwebview

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

在 macOS 上的链接时获取 __TEXT 部分的大小

使用gold和其他链接器,可以让链接器.text使用链接器脚本将节的开始/结束作为常量写入二进制文件,例如

PROVIDE_HIDDEN(linker_script_start_of_text = ADDR(.text));
PROVIDE_HIDDEN(linker_script_end_of_text = ADDR(.text) + SIZEOF(.text));
Run Code Online (Sandbox Code Playgroud)

ld -Tmy_linker_script.lds ....

我知道可以调用getectdata或类似方法来获取有关该.text部分的信息或从 mach-o 标头解析它,但是有没有办法让链接器将此数据作为常量插入?

c macos linker mach-o darwin

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

为什么我在同步时在 viewDidLoad 中崩溃,谁能知道发生这种情况的原因?

class ViewController: UIViewController {
   override func viewDidLoad() {
       // Do any additional setup after loading the view.
       DispatchQueue.main.sync { //this line crashes with Thread 1 : EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
          print("Rohit Kumar")
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

在 viewDidLoad 中使用同步方法崩溃,但它适用于异步,我不知道这背后的原因,任何人都可以帮助我。

我知道同步和异步之间的区别。

grand-central-dispatch swift

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