我的CoreData中有(n)个数据(UIImage JPEG)。
let imageData: [Data]...
Run Code Online (Sandbox Code Playgroud)
我已经有了这两个框架/ Pod:Zip和ZIPFoundation
我对此有一些疑问:
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) 我正在研究我的代码高尔夫/二进制可执行文件的最小操作码大小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)
最终结果是ecx
在11字节总数。
问题是关于设置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) 我有一个生成自修改代码的程序(如果您有兴趣,请参阅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 版。任何帮助,将不胜感激。
这里的要求是不管硬件静音开关如何播放各种网络声音,静音和未静音设备都必须在应用程序处于前台时继续在 HTML 页面中播放声音。deprecated 的解决方案UIWebView
很简单
let localWebView = UIWebView(frame: .zero)
localWebView.allowsInlineMediaPlayback = true
localWebView.mediaPlaybackRequiresUserAction = false
Run Code Online (Sandbox Code Playgroud)
如何实现相同的行为WKWebView
?
使用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 标头解析它,但是有没有办法让链接器将此数据作为常量插入?
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 中使用同步方法崩溃,但它适用于异步,我不知道这背后的原因,任何人都可以帮助我。
我知道同步和异步之间的区别。