阿里巴巴国际无线技术部 - 招人啦~求iOS、Android、Java

阿里巴巴(中国)网络技术有限公司

招人啦~求iOS、Android

大量招人啊~~~真实信息绝无有假啊~~~我不是HR不是猎头,我是开发啊~~~我就是土土哥啊~~~

转-阿里巴巴国际无线技术部 - 在这里遇见最好的自己

转自

给自己部门的软文!
阿里巴巴国际无线技术部 - 在这里遇见最好的自己

我们做什么

阿里巴巴国际无线技术部背靠阿里巴巴集团和阿里巴巴国际站,阿里巴巴国际站是全球领先的跨境B2B贸易服务平台,服务全世界数以千万计的采购商和供应商,阿里巴巴国际站(www.alibaba.com)帮助中小企业拓展国际贸易的出口营销推广服务,专注服务于全球中小微企业,在平台上,通过向海外买家展示、推广供应商的企业和产品,进而获得贸易商机和订单,买卖双方可以在线更高效地找到适合的彼此,并更快更安心地达成交易,是出口企业拓展国际贸易的首选跨境贸易平台。

阿里巴巴国际站技术致力于打造一站式eWTP全球国际B类贸易服务平台解决方案。近年来,随着智能手机的普及无线的趋势已经锐不可当。阿里巴巴国际无线技术部不仅是站在阿里巴巴集团和阿里巴巴国际站两个巨人的肩上,更是站在无线时代的浪潮之上。来吧少年,一起为全球中小企业服务!

反编译分析并模拟实现methodSignatureForSelector方法

前言

最近跟同事讨论了有关methodSignatureForSelector:的问题,大概如下:

  1. 一个ProtocolA声明了一个实例方法funcA,然后一个类ClassA声明实现这个ProtocolA,但是并没有实现方法funcA,对ClassA的实例调用methodSignatureForSelector:@selector(funcA)能否返回正确的signature?
  2. 一个类ClassB,在@interface声明了实例方法funcB,但是没有实现funcB,对ClassB的实例调用methodSignatureForSelector:@selector(funcB),能否返回正确的signature?

写个Demo验证了下,结果非常有意思,不由得好奇起来,所以深入研究了下methodSignatureForSelector:的实现,然后自己模拟实现出来。

Github地址:TTGRemakeMethodSignatureForSelector

详细的研究过程如下:

反编译分析Xcode8的Bug, release下连续两次调用有二级指针参数的空方法会Crash

更新

  • 在最新的Xcode 9 Beta版本中,此Bug已被苹果修复:Bug ID 30530580: Crash on “Release” Build Configuration scheme setting for Out Parameters code

二级指针

二级指针,也叫指针的指针,或者Out Parameters,可以用来改变一个指针的地址值,由于在Objective-C里面方法、函数不支持返回多个值,所以经常用二级指针实现这个功能,比如NSFileManager- (BOOL)removeItemAtURL:(NSURL *)URL error:(NSError **)error方法,就可以让方法在内部创建error后传出。

有趣的Autolayout示例5-Masonry实现

前言

第五篇来了!
还是3个小例子,仍然是主要部分用Masonry手写代码实现,其它的约束在storyboard里面直接拖拽搭建。三个例子分别是:

  1. UITableViewCell中多个变高的Label
  2. StairView自定义View的intrinsicContentSize,并支持在UITableViewCell中自动计算高度
  3. 给同一个属性添加多重约束,实现复杂关系

前四篇:

Github地址:
https://github.com/zekunyan/AutolayoutExampleWithMasonry

在对象dealloc的后期执行Task-开源库TTGDeallocTaskHelper

前言

最近更新了下以前写的TTGDeallocTaskHelper库,功能非常简单,就是在不改变原有代码的情况下,不用Runtime的Method Swizzling给任意对象添加任务Block,在对象dealloc的后期执行Block。使用时:

1
2
3
4
// 给object对象添加dealloc后期要执行的任务Block
[object ttg_addDeallocTask:^(__unsafe_unretained id target, NSUInteger identifier) {
// 执行任务
}];

Github地址:https://github.com/zekunyan/TTGDeallocTaskHelper

一张图说明原理:

总体结构

库的详细原理、限制、注意事项,为什么说“后期”执行,将在下文给出。

用QuartzCode快速实现一个收藏动画

前言

“工欲善其事,必先利其器”,iOS的Core Animation非常强大,可以做出非常炫酷的动画,但是实际写起来还是比较麻烦,代码不直观,需要反复的改参数、Build、运行,所以诞生了各种动画制作工具,本文就以其中比较有名的QuartzCode为例,快速实现一个收藏功能的星星动画,最终的效果如下:

GitHub地址:https://github.com/zekunyan/QuartzCodeExample-StarAimation

开源项目-拼图验证控件TTGPuzzleVerify的实现

前言

最近抽空写了个拼图验证控件,用户可以通过水平、垂直,或者直接拖动拼图块,完成拼图图案,来完成验证。拼图块的形状可以自定义,默认提供了经典的拼图形状、圆形、正方形,整个拼图的图案也是支持从图片生成的。

CocoaPods: pod "TTGPuzzleVerify"
Github: https://github.com/zekunyan/TTGPuzzleVerify

接下来,说说TTGPuzzleVerify的整体设计思路和实现原理。

Swift开源Mac App - BingWallPaper

更新

  • 2016-09-05: 新版0.3增加子Menu,整理选项;增加“History Wallpapers”打开历史图片文件夹;增加“Launch at startup”开机启动。
  • 2016-09-03: 新版0.2.0!增加“Auto Update”选项;增加“Random”随机选择设置壁纸;修复自动更新不准的Bug。

Banner

极简的壁纸Mac App,每天自动下载最新微软Bing的每日壁纸并设置为桌面背景。

ScreenShot1

Github: https://github.com/zekunyan/TTGBingWallPaper

有趣的Autolayout示例4-Masonry实现

前言

第四篇来了。
还是3个小例子,仍然是主要部分用Masonry手写代码实现,其它的约束在storyboard里面直接拖拽搭建。
三个例子分别是:

  1. 用约束优先级保证可移动View的内容可见
  2. Autolayout的约束=控件间位置关系的“绑定”
  3. 利用layoutIfNeeded控制约束的生效时机

前三篇:

Github地址:
https://github.com/zekunyan/AutolayoutExampleWithMasonry

Gif示例

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器