0%

我们知道,程序的”启动入口”在main函数,但这是从我们的程序逻辑来看的。实际上操作系统在加载我们的二进制可执行文件时,执行到main之前做了不少事情。比如oc的runtime运行库环境就是在main之前建立好的。
我们来一起看看在main之前到底做了什么。

阅读全文 »

Runtime中跟AssociateObject相关的接口如下

1
2
3
4
5
void objc_setAssociatedObject(id object, void *key, id value, objc_AssociationPolicy policy)

id objc_getAssociatedObject(id object, void *key)

void objc_removeAssociatedObjects(id object)

我们来看下苹果开源中的实现
我这里下载的是objc4-680.tar.gz
下载源码后从objc-runtime.mm里面找到对应方法,会发现实现在文件objc-references.mm

阅读全文 »

安装react-native-code-push

参考React-native-code-push README

  1. 安装 npm install react-native-code-push --save
    参数 –save 在安装的同时,把信息写入package.json 文件的项目路径
    检查:
    ① package.json文件加入了

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    {
    "name": "APPReact",
    "version": "0.0.1",
    "private": true,
    "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start"
    },
    "dependencies": {
    "react": "^0.14.8",
    "react-native": "^0.25.1",
    "react-native-code-push": "^1.10.6-beta"
    }
    }

    node_modules下有react-native-code-push文件夹

  2. 安装到本地工程
    主要是将react-native-code-push工程加入到我们的本地工程里面去,参考官方文档。
    iOS中修改加载js文件的路径代码,推荐写法:

    1
    2
    3
    4
    5
    6
    7
    NSURL *jsCodeLocation;

    #ifdef DEBUG
    jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];
    #else
    jsCodeLocation = [CodePush bundleURL]; //这里默认是main.jsbundle的js文件名,如果是其他文件名,请使用其他接口来获取bundleURL
    #endif
    阅读全文 »

什么是React Native

React Native 是Facebook出的一套开源框架,框架的作用是开发者特别是前端开发者可以使用JavaScript + React编写,但是会被“翻译”成原生代码执行。体验比纯粹的使用WebView去运行H5+JS语言更好,效率更高。
这是官方的介绍,可以让你构建出世界级的应用哦,是不是很心动?!

React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. The focus of React Native is on developer efficiency across all the platforms you care about - learn once, write anywhere. Facebook uses React Native in multiple production apps and will continue investing in React Native.

阅读全文 »

总算搭好了自己的博客,希望能记录下一些东西吧。中间也绕了不少弯路,整理出来供查阅。目前字体的大小和颜色以及代码高亮都还不是很满意,有空再调整一下。

搭建的过程主要是参考了官方文章和网上搜罗的一些教程。

  1. Github托管,有300M免费空间,免费。
  2. 域名管理:dnspod,免费。
  3. 域名是在阿里云(万网)购买,比GoDaddy便宜不少(即使我找到了35%的折扣券)。原因是一开始GoDaddy支付始终不成功,然后发现阿里云有购买域名的服务,而且更便宜。
  4. 博客使用Hexo框架搭建,原因是比Jekyll感觉要简单方便,主题Pacman也是原因之一。
  5. 图床使用七牛,可以使用提供的接口命令行传图片会更方便一点。
阅读全文 »