PageSourceSearch

https://zxy.vercel.app/

html zxy.vercel.app collected 2026-10-03 08:05:17 UTC 58,651 bytes, 14 lines download raw bytes

1<!DOCTYPE html><html lang="en-US"><head><link rel="preload" href="/fonts/IBMPlexSansVar-Roman.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="preload" href="/fonts/IBMPlexSansVar-Italic.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="icon" href="/favicon.ico"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/>
vendor: 66 bytes, line 1
1<script async="" src="https://www.googletagmanager.com/gtag/js?id=
1G-2QCFB3C6J6
vendor: 11 bytes, line 1
1"></script>
1<script>
2            
vendor: 163 bytes, lines 2-5
2window.dataLayer = window.dataLayer || [];
3            function gtag(){dataLayer.push(arguments);}
4            gtag('js', new Date());
5            gtag('config', '
5G-2QCFB3C6J6
vendor: 82 bytes, lines 5-8
5', {
6              page_path: window.location.pathname,
7            });
8          
8</script>
8<script>
9            if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
10              document.documentElement.classList.add('dark')
11            } else {
12              document.documentElement.classList.remove('dark')
13            }
14          </script>
14<meta name="viewport" content="width=device-width"/><title>Raw Thoughts</title><meta content="#111827" name="theme-color"/><meta name="robots" content="follow, index"/><meta charSet="UTF-8"/><meta name="keywords" content="Blog, Website, Notion"/><meta name="description" content="Xinyu&#x27;s Blog"/><meta property="og:locale" content="en-US"/><meta property="og:title" content="Raw Thoughts"/><meta property="og:description" content="Xinyu&#x27;s Blog"/><meta property="og:url" content="https://zxy.vercel.app"/><meta property="og:image" content="https://og-image-craigary.vercel.app/Raw%20Thoughts.png?theme=dark&amp;md=1&amp;fontSize=125px&amp;images=https%3A%2F%2Fnobelium.vercel.app%2Flogo-for-dark-bg.svg"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:description" content="Xinyu&#x27;s Blog"/><meta name="twitter:title" content="Raw Thoughts"/><meta name="twitter:image" content="https://og-image-craigary.vercel.app/Raw Thoughts.png?theme=dark&amp;md=1&amp;fontSize=125px&amp;images=https%3A%2F%2Fnobelium.vercel.app%2Flogo-for-dark-bg.svg"/><meta name="next-head-count" content="17"/><link rel="preload" href="/_next/static/css/c9a5e68f500ab192.css" as="style"/><link rel="stylesheet" href="/_next/static/css/c9a5e68f500ab192.css" data-n-g=""/><noscript data-n-css=""></noscript>
14<script defer="" nomodule="" src="/_next/static/chunks/polyfills-a40ef1678bae11e696dba45124eadd70.js"></script>
14<script src="/_next/static/chunks/webpack-1c549fdcd0e10a4c.js" defer=""></script>
14<script src="/_next/static/chunks/main-d45baaa8498dcf35.js" defer=""></script>
14<script src="/_next/static/chunks/framework-6ffc6b44adfd2957.js" defer=""></script>
14<script src="/_next/static/chunks/pages/_app-7021f101f92dc836.js" defer=""></script>
14<script src="/_next/static/chunks/421-be6f2dd34e9b2511.js" defer=""></script>
14<script src="/_next/static/chunks/818-3de8e1f70623faf8.js" defer=""></script>
14<script src="/_next/static/chunks/pages/index-18f8a199ee11bdd0.js" defer=""></script>
14<script src="/_next/static/LCWY5VQfdlwEdivSrk-Lq/_buildManifest.js" defer=""></script>
14<script src="/_next/static/LCWY5VQfdlwEdivSrk-Lq/_ssgManifest.js" defer=""></script>
14<script src="/_next/static/LCWY5VQfdlwEdivSrk-Lq/_middlewareManifest.js" defer=""></script>
14</head><body class="bg-day dark:bg-black">
14<script src="noflash.js"></script>
14<div id="__next"><div><div class="wrapper font-sans"><div class="observer-element h-4 md:h-12"></div><div class="sticky-nav m-auto w-full h-6 flex flex-row justify-between items-center mb-2 md:mb-12 py-8 bg-opacity-60 max-w-3xl px-4" id="sticky-nav"><div class="flex items-center"><a href="/"><div class="h-6"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+"/></span><img alt="Xinyu" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="rounded-full" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Xinyu" srcSet="/_next/image?url=%2Ffavicon.svg&amp;w=32&amp;q=75 1x, /_next/image?url=%2Ffavicon.svg&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2Ffavicon.svg&amp;w=48&amp;q=75" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="rounded-full" loading="lazy"/></noscript></span></div></a><p class="ml-2 font-medium text-day dark:text-night header-name">Raw Thoughts<!-- -->,<!-- --> <span class="font-normal">Xinyu&#x27;s Blog</span></p></div><div class="flex-shrink-0 flex flex-row items-center"><ul class="flex flex-row"><li class="block ml-4 text-black dark:text-gray-50 nav"><a href="/">Blog</a></li><li class="block ml-4 text-black dark:text-gray-50 nav"><a href="/about">About</a></li><li class="block ml-4 text-black dark:text-gray-50 nav"><a href="/feed">RSS</a></li><li class="block ml-4 text-black dark:text-gray-50 nav"><a href="/search">Search</a></li><div class="ml-5"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+"/></span><img alt="dark mode toggle" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="block text-black dark:text-gray-50 inline cursor-pointer" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="dark mode toggle" srcSet="/_next/image?url=%2Fdark-button.svg&amp;w=32&amp;q=75 1x, /_next/image?url=%2Fdark-button.svg&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2Fdark-button.svg&amp;w=48&amp;q=75" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="block text-black dark:text-gray-50 inline cursor-pointer" loading="lazy"/></noscript></span></div></ul></div></div><main class="m-auto flex-grow w-full transition-all max-w-2xl px-4"><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/2021"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">2021</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Jan 13, 2022</time></header><main>
14<p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/debug-cocoapods-with-vscode"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Debug CocoaPods with VSCode</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Aug 19, 2019</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/any-anyobject-in-swift"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Any &amp; AnyObject in Swift</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Jan 26, 2019</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/2018"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">2018</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Dec 25, 2018</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/crack-wechat-work"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">手把手教你给企业微信 Mac 客户端去除水印</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Nov 24, 2018</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/keypath-in-ios"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">KeyPath in Objective-C/Swift</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Nov 2, 2018</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/cocoapods-binary-for-zhihu"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">知乎 iOS 基于 CocoaPods 实现的二进制化方案</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Sep 11, 2018</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/trip-to-hk"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">香港印象</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Sep 3, 2018</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/analyze-pods-dependencies"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Analyze dependencies of CocoaPods Project</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Sep 2, 2018</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/swift-static-framework"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Swift Static Framework in CocoaPods</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Apr 28, 2018</time></header><main>
14<p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/create-cli-using-ruby-gem"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Create CLI using Ruby Gem </h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Apr 16, 2018</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/two-frameworks-same-c-functions"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">两个 Framework 中如果定义了相同名字的 C 函数会发生什么?</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Apr 14, 2018</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/method-dispatch-in-swift"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Method Dispatch in Swift</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Apr 8, 2018</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/manage-ios-project-with-bundler"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Manage ruby dependencies in iOS Project</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Apr 7, 2018</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/gitlab-ci-for-ios"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Integrate pipeline for iOS projects using GitLab CI</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Mar 21, 2018</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/create-cli-using-homebrew-formula"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Manage CLI using Homebrew Formula</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Jan 24, 2018</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/phantom-types-in-swift"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Phantom Types in Swift</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Nov 14, 2017</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/development-pods-dependency-checker"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Development Pods</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Sep 16, 2017</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/add-tests-to-your-pod"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">为 CocoaPods 组件添加测试</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Aug 5, 2017</time></header><main>
14<p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/result-in-swift"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Result in Swift</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Jul 23, 2017</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/initializers-in-oc-swift"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Initializer in Objective-C/Swift</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Jul 16, 2017</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/kickstarter-oss-2"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Kickstarter iOS 源码阅读 Pt. 2</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Jul 9, 2017</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/kickstarter-oss-1"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Kickstarter iOS 源码阅读 Pt. 1</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Jul 8, 2017</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/calayer-mask"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">CALayer.mask</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Jul 4, 2017</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/frp-in-swift"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">FRP in Swift</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">May 26, 2017</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/swift-syntax-cheat-codes"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">&lt;译&gt; Swift Syntax Cheat Codes</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Apr 14, 2017</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/simple-ping-in-ios"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">ping in iOS</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Apr 13, 2017</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/reachability-in-ios"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Reachability in iOS</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Apr 11, 2017</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/express-api-versioning"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">API versioning in Express.js</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Feb 1, 2017</time></header><main>
14<p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/api-versioning"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">API Versioning</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Feb 1, 2017</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/write-good-commit-message"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Write Good Commit Message</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Jan 4, 2017</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/read-wwmxd"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">&lt;读&gt;「万万没想到 - 用理工科思维理解世界」</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Jan 1, 2017</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/swift-stdlib-source"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">&lt;译&gt; 如何阅读 Swift 标准库中的源码</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Dec 10, 2016</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/vagrant-setup"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">使用 Vagrant 搭建 Node.js 环境</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Nov 20, 2016</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/building-swift-3-0-on-an-armv7-system"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">&lt;译&gt; 在 ARMv7 的设备上编译 Swift 3.0</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Oct 24, 2016</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/pdf-generation-ios"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">&lt;译&gt; 在 iOS 中使用 HTML 模版和 UIPrintPageRenderer 生成 PDF</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Aug 28, 2016</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/resources-for-new-programmers"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">&lt;译&gt; 推荐给编程菜鸟的书籍</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Jul 24, 2016</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/my-last-winter-vacation"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">最后一个寒假</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Mar 9, 2016</time></header><main>
14<p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/2015"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">2015</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Dec 8, 2015</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/learn-sinatra"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Learn Sinatra</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Dec 5, 2015</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/what-are-cookies"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">&lt;译&gt; Cookie 是什么?</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Oct 19, 2015</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/use-xcodebuild"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Use xcodebuild</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Oct 16, 2015</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/develop-husthelper"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">开发「理工助手」那些事儿</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Jul 30, 2015</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/multithreading-in-iOS"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Multithreading in iOS</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Jul 20, 2015</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/mixing-swift-with-objectivec"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Mixing Swift &amp; ObjectiveC</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Apr 23, 2015</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/first-interview"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">第一次面试!</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Apr 14, 2015</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/learn-coredata"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Learn CoreData</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Feb 1, 2015</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/learn-swift-2"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Learn Swift Pt. 2</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Jan 22, 2015</time></header><main>
14<p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/learn-swift-1"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Learn Swift Pt. 1</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Jan 20, 2015</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/plans-for-2015"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Plans for 2015</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Jan 9, 2015</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/static-library-vs-dynamic-library"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">静态库 vs 动态库</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Dec 3, 2014</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/reference-counting"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Reference Counting</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Nov 24, 2014</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/talk-something-about-this-blog"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">聊聊这个 Blog</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Nov 23, 2014</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/learn-git"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Learn Git</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Sep 13, 2014</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/first-written-examination"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">第一次笔试!</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Sep 12, 2014</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/linux-process"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Learn Linux Process</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Sep 10, 2014</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/learn-shell-script"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Learn Shell Script</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">Sep 7, 2014</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/firework"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">Firework</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">May 23, 2014</time></header><main>
14<p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article><article class="mb-6 md:mb-8"><header class="flex flex-col justify-between md:flex-row md:items-baseline"><a href="/learn-programming"><h2 class="text-lg md:text-xl font-medium mb-2 cursor-pointer text-black dark:text-gray-100">开始学习编程了!</h2></a><time class="flex-shrink-0 text-gray-600 dark:text-gray-400">May 13, 2014</time></header><main><p class="hidden md:block leading-8 text-gray-700 dark:text-gray-300"></p></main></article></main><div class="mt-6 flex-shrink-0 m-auto w-full text-gray-500 dark:text-gray-400 transition-all max-w-2xl px-4"><hr class="border-gray-200 dark:border-gray-600"/><div class="my-4 text-sm leading-6 font-medium"><div class="flex align-baseline justify-between flex-wrap"><p>© <!-- -->Xinyu<!-- --> <!-- -->2014 - 2026</p><a href="https://vercel.com?utm_source=Craigary&amp;utm_campaign=oss" target="_blank" rel="noreferrer"><svg width="135" height="28" viewBox="0 0 135 28" fill="none" xmlns="http://www.w3.org/2000/svg" class="inline-block"><g clip-path="url(#clip0)"><path d="M129.818 0H5.09091C2.27928 0 0 2.27928 0 5.09091V22.9091C0 25.7207 2.27928 28 5.09091 28H129.818C132.63 28 134.909 25.7207 134.909 22.9091V5.09091C134.909 2.27928 132.63 0 129.818 0Z" fill="black"></path><path d="M38.4601 9.68997V16.8639H39.355V14.3036H41.1597C42.507 14.3036 43.4665 13.354 43.4665 12.0117C43.4665 10.6445 42.5268 9.68997 41.1696 9.68997H38.4601ZM39.355 10.4854H40.9359C41.975 10.4854 42.5467 11.0273 42.5467 12.0117C42.5467 12.9613 41.9551 13.5081 40.9359 13.5081H39.355V10.4854ZM46.6734 16.9584C48.1996 16.9584 49.1442 15.9044 49.1442 14.1843C49.1442 12.4591 48.1996 11.4101 46.6734 11.4101C45.1471 11.4101 44.2025 12.4591 44.2025 14.1843C44.2025 15.9044 45.1471 16.9584 46.6734 16.9584ZM46.6734 16.1878C45.6591 16.1878 45.0874 15.452 45.0874 14.1843C45.0874 12.9116 45.6591 12.1807 46.6734 12.1807C47.6875 12.1807 48.2593 12.9116 48.2593 14.1843C48.2593 15.452 47.6875 16.1878 46.6734 16.1878ZM56.8255 11.5046H55.9654L54.9115 15.7901H54.8319L53.6338 11.5046H52.8135L51.6153 15.7901H51.5358L50.4818 11.5046H49.6167L51.1182 16.8639H51.9832L53.1764 12.7177H53.2559L54.4541 16.8639H55.3241L56.8255 11.5046ZM59.7043 12.1658C60.5544 12.1658 61.1212 12.7922 61.1411 13.7418H58.1879C58.2526 12.7922 58.8492 12.1658 59.7043 12.1658ZM61.1162 15.4769C60.8925 15.9492 60.4252 16.2027 59.7341 16.2027C58.8243 16.2027 58.2327 15.5315 58.1879 14.4726V14.4328H62.0409V14.1047C62.0409 12.4392 61.161 11.4101 59.7142 11.4101C58.2427 11.4101 57.298 12.5038 57.298 14.1892C57.298 15.8845 58.2277 16.9584 59.7142 16.9584C60.8875 16.9584 61.7227 16.3916 61.9714 15.4769H61.1162ZM63.1796 16.8639H64.0346V13.5429C64.0346 12.7873 64.6264 12.2404 65.4416 12.2404C65.6109 12.2404 65.9189 12.2702 65.9889 12.2901V11.435C65.8794 11.42 65.6999 11.4101 65.5612 11.4101C64.8504 11.4101 64.2338 11.778 64.0747 12.3H63.9951V11.5046H63.1796V16.8639ZM68.8423 12.1658C69.6925 12.1658 70.2595 12.7922 70.2792 13.7418H67.3259C67.3908 12.7922 67.9877 12.1658 68.8423 12.1658ZM70.2544 15.4769C70.0304 15.9492 69.5633 16.2027 68.8722 16.2027C67.9622 16.2027 67.371 15.5315 67.3259 14.4726V14.4328H71.179V14.1047C71.179 12.4392 70.2989 11.4101 68.8525 11.4101C67.3806 11.4101 66.4362 12.5038 66.4362 14.1892C66.4362 15.8845 67.3659 16.9584 68.8525 16.9584C70.0259 16.9584 70.8609 16.3916 71.1097 15.4769H70.2544ZM74.3017 16.9584C75.0424 16.9584 75.6788 16.6055 76.0167 16.0088H76.0962V16.8639H76.9114V9.37675H76.0568V12.3497H75.9817C75.6788 11.7631 75.0475 11.4101 74.3017 11.4101C72.9392 11.4101 72.0496 12.5038 72.0496 14.1843C72.0496 15.8696 72.929 16.9584 74.3017 16.9584ZM74.5002 12.1807C75.47 12.1807 76.0765 12.9563 76.0765 14.1843C76.0765 15.4222 75.4745 16.1878 74.5002 16.1878C73.5209 16.1878 72.9341 15.4371 72.9341 14.1843C72.9341 12.9364 73.5259 12.1807 74.5002 12.1807ZM83.7033 16.9584C85.0607 16.9584 85.9503 15.8597 85.9503 14.1843C85.9503 12.4989 85.0651 11.4101 83.7033 11.4101C82.9677 11.4101 82.316 11.773 82.0227 12.3497H81.9431V9.37675H81.0879V16.8639H81.9037V16.0088H81.9832C82.3211 16.6055 82.9575 16.9584 83.7033 16.9584ZM83.5041 12.1807C84.4835 12.1807 85.0651 12.9314 85.0651 14.1843C85.0651 15.4371 84.4835 16.
141878 83.5041 16.1878C82.5299 16.1878 81.9234 15.4222 81.9234 14.1843C81.9234 12.9464 82.5299 12.1807 83.5041 12.1807ZM87.3478 18.8029C88.2972 18.8029 88.7249 18.435 89.1818 17.1921L91.2754 11.5046H90.3654L88.8986 15.9144H88.819L87.3478 11.5046H86.4231L88.4067 16.8689L88.3068 17.1871C88.0834 17.8334 87.8149 18.0671 87.3229 18.0671C87.2033 18.0671 87.069 18.0621 86.9647 18.0422V18.773C87.0843 18.7929 87.2332 18.8029 87.3478 18.8029ZM98.4148 16.8639L100.895 9.68997H99.5284L97.7383 15.3675H97.6543L95.8496 9.68997H94.4324L96.9384 16.8639H98.4148ZM103.516 12.295C104.257 12.295 104.744 12.8121 104.769 13.6175H102.208C102.263 12.822 102.78 12.295 103.516 12.295ZM104.778 15.3675C104.6 15.7702 104.177 15.9939 103.565 15.9939C102.755 15.9939 102.233 15.4272 102.203 14.5223V14.4577H106.001V14.06C106.001 12.3447 105.072 11.3156 103.521 11.3156C101.945 11.3156 100.965 12.4144 100.965 14.1644C100.965 15.9144 101.93 16.9733 103.53 16.9733C104.813 16.9733 105.723 16.3568 105.947 15.3675H104.778ZM107.036 16.8639H108.269V13.7219C108.269 12.9613 108.826 12.4641 109.626 12.4641C109.835 12.4641 110.163 12.4989 110.257 12.5337V11.3902C110.143 11.3555 109.924 11.3355 109.745 11.3355C109.045 11.3355 108.458 11.7333 108.308 12.2702H108.224V11.425H107.036V16.8639ZM115.627 13.2546C115.498 12.1111 114.652 11.3156 113.255 11.3156C111.62 11.3156 110.66 12.3647 110.66 14.1296C110.66 15.9193 111.625 16.9733 113.26 16.9733C114.638 16.9733 115.493 16.2077 115.627 15.0692H114.454C114.324 15.636 113.897 15.9392 113.255 15.9392C112.415 15.9392 111.908 15.273 111.908 14.1296C111.908 13.001 112.41 12.3497 113.255 12.3497C113.932 12.3497 114.339 12.7276 114.454 13.2546H115.627ZM118.883 12.295C119.624 12.295 120.112 12.8121 120.136 13.6175H117.576C117.63 12.822 118.148 12.295 118.883 12.295ZM120.147 15.3675C119.967 15.7702 119.545 15.9939 118.933 15.9939C118.123 15.9939 117.601 15.4272 117.571 14.5223V14.4577H121.369V14.06C121.369 12.3447 120.439 11.3156 118.888 11.3156C117.312 11.3156 116.333 12.4144 116.333 14.1644C116.333 15.9144 117.298 16.9733 118.899 16.9733C120.181 16.9733 121.091 16.3568 121.314 15.3675H120.147ZM122.453 16.8639H123.686V9.32202H122.453V16.8639Z" fill="white"></path><path d="M14.8431 8.27271L20.7772 18.4545H8.90918L14.8431 8.27271Z" fill="white"></path><path d="M27.6819 0V28" stroke="#5E5E5E" stroke-width="0.636364"></path></g><defs><clipPath id="clip0"><rect width="134.909" height="28" fill="white"></rect></clipPath></defs></svg></a></div></div></div></div></div></div>
14<script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"page":1,"postsToShow":[{"id":"4536f45a-37a6-44c7-922d-31ec635bed7e","date":{"start_date":"2022-01-13"},"type":["Post"],"slug":"2021","tags":["瞎扯"],"title":"2021","status":["Published"],"createdTime":"Wed Jan 12 2022 16:52:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"eac5feb5-56c9-4c44-b48a-68f330e80778","date":{"start_date":"2019-08-19"},"type":["Post"],"slug":"debug-cocoapods-with-vscode","tags":["iOS"],"title":"Debug CocoaPods with VSCode","status":["Published"],"createdTime":"Wed Jun 23 2021 08:30:57 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"102f151b-e715-47ad-8b64-a44d5214c252","date":{"start_date":"2019-01-26"},"type":["Post"],"slug":"any-anyobject-in-swift","tags":["Swift","iOS"],"title":"Any \u0026 AnyObject in Swift","status":["Published"],"createdTime":"Wed Jun 23 2021 08:30:57 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"a0249fcd-2ee0-4f3a-92da-d8ff4b7dc3e2","date":{"start_date":"2018-12-25"},"type":["Post"],"slug":"2018","tags":["瞎扯"],"title":"2018","status":["Published"],"createdTime":"Wed Jun 23 2021 12:51:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"3d99c2fe-5571-4a7f-9389-e7505a8ff7b0","date":{"start_date":"2018-11-24"},"type":["Post"],"slug":"crack-wechat-work","tags":["iOS"],"title":"手把手教你给企业微信 Mac 客户端去除水印","status":["Published"],"createdTime":"Wed Jun 23 2021 08:37:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"e0963db2-12d6-4126-9431-311583440c35","date":{"start_date":"2018-11-02"},"type":["Post"],"slug":"keypath-in-ios","tags":["Swift","iOS"],"title":"KeyPath in Objective-C/Swift","status":["Published"],"createdTime":"Wed Jun 23 2021 10:57:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"a9e3c6cb-aafe-4e82-a218-20fcf239401a","date":{"start_date":"2018-09-11"},"type":["Post"],"slug":"cocoapods-binary-for-zhihu","tags":["iOS"],"title":"知乎 iOS 基于 CocoaPods 实现的二进制化方案","status":["Published"],"createdTime":"Sat Jun 26 2021 02:09:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"ec9fa644-5f0b-4481-a0fe-cb8899c9bb92","date":{"start_date":"2018-09-03"},"type":["Post"],"slug":"trip-to-hk","tags":["Travel"],"title":"香港印象","status":["Published"],"createdTime":"Wed Jun 23 2021 12:53:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"25235574-a366-4057-ad14-961b060d9c52","date":{"start_date":"2018-09-02"},"type":["Post"],"slug":"analyze-pods-dependencies","tags":["iOS"],"title":"Analyze dependencies of CocoaPods Project","status":["Published"],"createdTime":"Wed Jun 23 2021 12:54:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"950b4f78-1590-40d9-a27d-a715126e9859","date":{"start_date":"2018-04-28"},"type":["Post"],"slug":"swift-static-framework","tags":["iOS","Swift"],"title":"Swift Static Framework in CocoaPods","status":["Published"],"createdTime":"Wed Jun 23 2021 12:56:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"7bd7d627-1a54-42e8-9c90-13993c15748d","date":{"start_date":"2018-04-16"},"type":["Post"],"slug":"create-cli-using-ruby-gem","tags":["Ruby"],"title":"Create CLI using Ruby Gem ","status":["Published"],"createdTime":"Wed Jun 23 2021 12:58:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"dc757a0d-2dc3-46f2-a1c3-97873c192908","date":{"start_date":"2018-04-14"},"type":["Post"],"slug":"two-frameworks-same-c-functions","tags":["iOS"],"title":"两个 Framework 中如果定义了相同名字的 C 函数会发生什么?","status":["Published"],"createdTime":"Wed Jun 23 2021 10:58:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"9dbf2b76-31aa-4f4f-9af1-e3f8c5d8a5fe","date":{"start_date":"2018-04-08"},"type":["Post"],"slug":"method-dispatch-in-swift","tags":["Swift","iOS"],"title":"Method Dispatch in Swift","status":["Published"],"createdTime":"Wed Jun 23 2021 10:58:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"30778bc3-2990-4557-8a82-1f42f03c01fe","date":{"start_date":"2018-04-07"},"type":["Post"],"slug":"manage-ios-project-with-bundler","tags":["iOS"],"title":"Manage ruby depen
14dencies in iOS Project","status":["Published"],"createdTime":"Wed Jun 23 2021 12:57:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"1bc654b1-17f0-41ab-90d7-2c7100b993f9","date":{"start_date":"2018-03-21"},"type":["Post"],"slug":"gitlab-ci-for-ios","tags":["iOS"],"title":"Integrate pipeline for iOS projects using GitLab CI","status":["Published"],"createdTime":"Wed Jun 23 2021 13:00:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"c91c6b3c-b891-4fe2-a8f5-467dcbe6960d","date":{"start_date":"2018-01-24"},"type":["Post"],"slug":"create-cli-using-homebrew-formula","tags":["iOS"],"title":"Manage CLI using Homebrew Formula","status":["Published"],"createdTime":"Wed Jun 23 2021 13:01:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"233ed0ce-2949-4cbb-a64c-0327e7cf802f","date":{"start_date":"2017-11-14"},"type":["Post"],"slug":"phantom-types-in-swift","tags":["Swift","iOS"],"title":"Phantom Types in Swift","status":["Published"],"createdTime":"Wed Jun 23 2021 10:59:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"0b3fa040-091a-4848-a401-607ac00c74d2","date":{"start_date":"2017-09-16"},"type":["Post"],"slug":"development-pods-dependency-checker","tags":["iOS"],"title":"Development Pods","status":["Published"],"createdTime":"Wed Jun 23 2021 11:00:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"bc9d3d60-448e-4c22-aa54-3cbe7889a2a4","date":{"start_date":"2017-08-05"},"type":["Post"],"slug":"add-tests-to-your-pod","tags":["iOS"],"title":"为 CocoaPods 组件添加测试","status":["Published"],"createdTime":"Wed Jun 23 2021 13:04:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"66d1689b-eb5e-41f9-9dc5-c6fb972ad3d4","date":{"start_date":"2017-07-23"},"type":["Post"],"slug":"result-in-swift","tags":["Swift","iOS"],"title":"Result in Swift","status":["Published"],"createdTime":"Wed Jun 23 2021 11:01:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"f64360e1-f084-4fad-a45e-bf8ae3dcfc01","date":{"start_date":"2017-07-16"},"type":["Post"],"slug":"initializers-in-oc-swift","tags":["iOS"],"title":"Initializer in Objective-C/Swift","status":["Published"],"createdTime":"Wed Jun 23 2021 13:05:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"4623db8e-3d4e-47a6-b4e4-4afd0ff2e47e","date":{"start_date":"2017-07-09"},"type":["Post"],"slug":"kickstarter-oss-2","tags":["iOS"],"title":"Kickstarter iOS 源码阅读 Pt. 2","status":["Published"],"createdTime":"Wed Jun 23 2021 13:06:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"2164ffb9-5491-41df-a737-93103c7a46ee","date":{"start_date":"2017-07-08"},"type":["Post"],"slug":"kickstarter-oss-1","tags":["iOS"],"title":"Kickstarter iOS 源码阅读 Pt. 1","status":["Published"],"createdTime":"Wed Jun 23 2021 13:09:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"a37645f1-a6e6-41b7-8e86-446d8f22bdae","date":{"start_date":"2017-07-04"},"type":["Post"],"slug":"calayer-mask","tags":["iOS"],"title":"CALayer.mask","status":["Published"],"createdTime":"Wed Jun 23 2021 13:25:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"a42d8d43-f6b1-48cf-9c2e-6c4a18d5ddae","date":{"start_date":"2017-05-26"},"type":["Post"],"slug":"frp-in-swift","tags":["Swift","iOS"],"title":"FRP in Swift","status":["Published"],"createdTime":"Wed Jun 23 2021 13:26:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"78dc90e4-372f-47da-80f0-be2179bae273","date":{"start_date":"2017-04-14"},"type":["Post"],"slug":"swift-syntax-cheat-codes","tags":["Swift","翻译","iOS"],"title":"\u003c译\u003e Swift Syntax Cheat Codes","status":["Published"],"createdTime":"Wed Jun 23 2021 13:29:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"9579ce44-2844-4a7e-9594-751e5a8175c7","date":{"start_date":"2017-04-13"},"type":["Post"],"slug":"simple-ping-in-ios","tags":["iOS"],"title":"ping in iOS","status":["Published"],"createdTime":"Wed Jun 23 2021 13:31:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"c59d8430-5701-4868-b612-bef0e4c28a5b","date":{"start_date":"2017-04-11"},"type":["Post"],"slug":"reachability-in-ios","tags":["iOS"],"title":"Reachability in iOS","status":["Published"],"createdTime":"Wed Jun 23 2021 13:34:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"2a551de5-f517-412d-a641-db703727efbe","date":{"start_date":"2017-02-01"},"type":["Post"],"slug":"express-api-versioning","tags":["Backend"],"title":"API versioning in Express.js","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:40 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"27c418e1-6b2b-4134-8236-10e929be0788","date":{"start_date":"2017-02-01"},"type":["Post"],"slug":"api-versioning","tags":["Backend"],"title":"API Versioning","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:39 GMT+0000 (Coordinated Universal Time)","fullWidth":false}
14,{"id":"1a20ef80-de3c-494e-a11a-095f0b7c6139","date":{"start_date":"2017-01-04"},"type":["Post"],"slug":"write-good-commit-message","tags":["Engineering"],"title":"Write Good Commit Message","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:35 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"880bb79c-f36e-44d1-a836-9350fd8ad5d2","date":{"start_date":"2017-01-01"},"type":["Post"],"slug":"read-wwmxd","tags":["Read"],"title":"\u003c读\u003e「万万没想到 - 用理工科思维理解世界」","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:33 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"cd2a86ea-9177-4611-8f58-bd4612441f93","date":{"start_date":"2016-12-10"},"type":["Post"],"slug":"swift-stdlib-source","tags":["Swift","翻译","iOS"],"title":"\u003c译\u003e 如何阅读 Swift 标准库中的源码","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:31 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"bcf1ca36-b1af-466f-a13f-4a33c091b9c8","date":{"start_date":"2016-11-20"},"type":["Post"],"slug":"vagrant-setup","tags":["Engineering"],"title":"使用 Vagrant 搭建 Node.js 环境","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:30 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"03b03422-18c8-411f-931c-34d33b6cd738","date":{"start_date":"2016-10-24"},"type":["Post"],"slug":"building-swift-3-0-on-an-armv7-system","tags":["Swift","翻译","iOS"],"title":"\u003c译\u003e 在 ARMv7 的设备上编译 Swift 3.0","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:29 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"ea7aa024-f259-4ce9-976e-87a478171565","date":{"start_date":"2016-08-28"},"type":["Post"],"slug":"pdf-generation-ios","tags":["iOS","翻译"],"title":"\u003c译\u003e 在 iOS 中使用 HTML 模版和 UIPrintPageRenderer 生成 PDF","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:27 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"ee94436f-6eec-45b9-92c4-a1aeeeaf8058","date":{"start_date":"2016-07-24"},"type":["Post"],"slug":"resources-for-new-programmers","tags":["翻译","Engineering"],"title":"\u003c译\u003e 推荐给编程菜鸟的书籍","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:26 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"d4a29350-345e-4b40-aeab-823f170b492a","date":{"start_date":"2016-03-09"},"type":["Post"],"slug":"my-last-winter-vacation","tags":["瞎扯"],"title":"最后一个寒假","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:25 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"f4c64b40-9ddd-488f-9c9b-bdb33d9f137b","date":{"start_date":"2015-12-08"},"type":["Post"],"slug":"2015","tags":["瞎扯"],"title":"2015","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:24 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"cfb10294-488e-4dcf-ba3e-d13393ed3b31","date":{"start_date":"2015-12-05"},"type":["Post"],"slug":"learn-sinatra","tags":["Ruby"],"title":"Learn Sinatra","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:21 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"86b6e02b-6a41-4fe7-8fe1-3bf0f67bd673","date":{"start_date":"2015-10-19"},"type":["Post"],"slug":"what-are-cookies","tags":["翻译","Engineering"],"title":"\u003c译\u003e Cookie 是什么?","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:21 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"f4432ee5-f7a0-4ea0-b207-761445e04764","date":{"start_date":"2015-10-16"},"type":["Post"],"slug":"use-xcodebuild","tags":["iOS"],"title":"Use xcodebuild","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:16 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"3ef977b6-5cdb-48a3-9118-0fcbdcd920d2","date":{"start_date":"2015-07-30"},"type":["Post"],"slug":"develop-husthelper","tags":["瞎扯"],"title":"开发「理工助手」那些事儿","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:15 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"c76a8210-205b-4aee-959e-f3f4cd1749b1","date":{"start_date":"2015-07-20"},"type":["Post"],"slug":"multithreading-in-iOS","tags":["iOS"],"title":"Multithreading in iOS","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:13 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"9bc29777-6fd6-43d5-ac29-61a54032a24c","date":{"start_date":"2015-04-23"},"type":["Post"],"slug":"mixing-swift-with-objectivec","tags":["iOS"],"title":"Mixing Swift \u0026 ObjectiveC","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:06 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"53ce9eee-11b5-4853-9540-22884fa8b9f7","date":{"start_date":"2015-04-14"},"type":["Post"],"slug":"first-interview","tags":["瞎扯"],"title":"第一次面试!","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:05 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"365aaf12-bc39-487f-8857-4a422ae3c444","date":{"start_date":"2015-02-01"},"type":["Post"],"slug":"learn-coredata","tags":["iOS"],"title":"Learn CoreData","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:04 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"c9dd71be-3325-4841-aa94-e1e7e709067e","date":{"start_date":"2015-01-22"},"type":["Post"],"slug":"learn-swift-2","tags":["Swift","iOS"],"title":"Learn Swift Pt. 2","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:03 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"96085a33-cdbf-4eb8-a0cb-57fdda701956","date":{"start_date":"2015-01-20"},"type":["Post"],"slug":"learn-swift-1","tags":["Swift","iOS"],"title":"Learn Swift Pt. 1","status":["Published"],"createdTime":"Wed Jun 23 2021 13:39:00 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"084f0b5e-b6b9-4dd2-96ed-0dba75885599","date":{"start_date":"2015-01-09"},"type":["Post"],"slug":"plans-for-2015","tags":["瞎扯"],"title":"Plans for 2015","status":["Published"],"createdTime":"Wed Jun 23 2021 13:38:58 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"01113a26-99d5-479a-97e5-e26886329417","date":{"start_date":"2014-12-03"},"type":["Post"],"slug":"static-library-vs-dynamic-library","tags":["Engineering"],"title":"静态库 vs 动态库","status":["Published"],"createdTime":"Wed Jun 23 2021 13:38:57 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"0745682d-682b-410c-878d-ed9581012a0a","date":{"start_date":"2014-11-24"},"type":["Post"],"slug":"reference-counting","tags":["Engineering"],"title":"Reference Counting","status":["Published"],"createdTime":"Wed Jun 23 2021 13:38:55 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"52660291-9d54-41c6-b25e-21be40e7d12c","date":{"start_date":"2014-11-23"},"type":["Post"],"slug":"talk-something-about-this-blog","tags":["瞎扯"],"title":"聊聊这个 Blog","status":["Published"],"createdTime":"Wed Jun 23 2021 13:38:53 GMT+0000 (Coordinated Universal Time)","fullWidth":false}
14,{"id":"3552aa16-50df-4142-a37b-2e575bc57f07","date":{"start_date":"2014-09-13"},"type":["Post"],"slug":"learn-git","tags":["Engineering"],"title":"Learn Git","status":["Published"],"createdTime":"Wed Jun 23 2021 13:38:51 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"38be4e14-cf29-42f2-89aa-c015b8e62090","date":{"start_date":"2014-09-12"},"type":["Post"],"slug":"first-written-examination","tags":["瞎扯"],"title":"第一次笔试!","status":["Published"],"createdTime":"Wed Jun 23 2021 13:38:50 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"722b93ab-230a-4fff-a0e7-331bb61bee1e","date":{"start_date":"2014-09-10"},"type":["Post"],"slug":"linux-process","tags":["Engineering"],"title":"Learn Linux Process","status":["Published"],"createdTime":"Wed Jun 23 2021 13:38:48 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"b995f660-715f-4f2b-9a49-d117c4b3f96f","date":{"start_date":"2014-09-07"},"type":["Post"],"slug":"learn-shell-script","tags":["Engineering"],"title":"Learn Shell Script","status":["Published"],"createdTime":"Wed Jun 23 2021 13:38:46 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"43069cfa-a66d-4903-affe-3d4d592e374b","date":{"start_date":"2014-05-23"},"type":["Post"],"slug":"firework","tags":["瞎扯"],"title":"Firework","status":["Published"],"createdTime":"Wed Jun 23 2021 13:38:45 GMT+0000 (Coordinated Universal Time)","fullWidth":false},{"id":"0cf2ffa8-c209-4df8-8a31-e90c9ccbceea","date":{"start_date":"2014-05-13"},"type":["Post"],"slug":"learn-programming","tags":["瞎扯"],"title":"开始学习编程了!","status":["Published"],"createdTime":"Wed Jun 23 2021 13:38:43 GMT+0000 (Coordinated Universal Time)","fullWidth":false}],"showNext":false},"__N_SSG":true},"page":"/","query":{},"buildId":"LCWY5VQfdlwEdivSrk-Lq","isFallback":false,"gsp":true,"scriptLoader":[]}</script>
14</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.