dyld: Library not loaded: @rpath/VFLLayout.framework/VFLLayout
  Referenced from: /var/containers/Bundle/Application/61379713-56C9-48AC-992C-7B5224096735/LayoutExample.app/LayoutExample
  Reason: image not found
Message from debugger: Terminated due to signal 6

Continue reading

由于我们这边数据的特殊性,数据量大、刷新频繁等原因,于是使用到了Google得protobuf协议。
相比较于Json、XML,它更小巧,于是在同等网络条件下,它的传输速度会更快,同等量级的数据的情况下,它能为用户省下更多的数据流量,而且Google也为他提供了多语言的支持。

谷歌官网 : Google Protocol Buffers
Github项目地址 : Google’s protobuf

Continue reading

在做APP开发的时候,会遇到更换主题的需求,现在的APP里也是有着不少这样做的,其中主题样式最多的应该要数QQ吧,可以在主题商店里下载各种喜欢的主题。

从他们这样主题的方式来看,不难看出,必定是通过文件管理的方式来做到的,因为在使用过程中从服务器下载下来的主题样式可不能直接的都写在APP里啊。

在这之前呢,我也没有做过主题切换相关的功能,所以在拿到这个需求的时候,参考QQ的使用考虑到了以下几点吧:

  1. 皮肤样式要满足多样性,可以动态的更新和切换
  2. 封装好后对于原有的代码不能过于的耦合
  3. 换肤要考虑到图片和颜色
  4. 不能过于复杂,需要减少学习接入的时间

Continue reading

在iOS中布局一个组件,必需的一个属性就是CGRect,由于它是C中的结构体的构造方式,而在iOS的面向对象编程的过程中,使用着还是有一些不方便的地方,于是我们在开发的时候经常的都会对View做一个扩展(Category),用来方便的操作组件的坐标、尺寸。而有一些方法,其实苹果在封装的过程中已经给我们想好了,下面是CGGeometry中一些常见、不常见的、常用、不常用的方法的说明。

Continue reading

URL

在做URL的地址处理的时候,会经常对url字符串做截取其中的某一部分的操作,会在代码里经常的看到有人使用rangeOfStringsubstringWithRangesubstringFromIndex来处理。
其实对于系统封装的NSURL类已经给我们提供了一些列的属性来帮助我们去获取URL不同位置的属性值了。

URL完整的拼接格式如下:

<scheme>://<user>:<password>@<host>:<port>/<path>;<parameter>?<query>#<fragment>

Continue reading

引用一下苹果官方的文字(About Multipeer Connectivity):

The Multipeer Connectivity framework provides support for discovering services provided by nearby iOS devices using infrastructure Wi-Fi networks, peer-to-peer Wi-Fi, and Bluetooth personal area networks and subsequently communicating with those services by sending message-based data, streaming data, and resources (such as files).

总结一句话就是:Multipeer Connectivity就是通过Wi-Fi、P2P、BLE等近场局域网络实现数据传输的一种技术。

Continue reading