V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
jimliu
V2EX  ›  iDev

寻热心iOS开发一起完善iOS的新浪微博SDK

  •  
  •   jimliu · 2013-08-12 22:38:05 +08:00 · 5027 次点击
    这是一个创建于 4123 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近我重构了一下新浪微博SDK代码,主要接口都换成了Block的方式,例如:

    [Weibo.weibo queryTimeline:StatusTimelineFriends count:50 completed:^(NSMutableArray *statuses, NSError *error) {
    if (error) {
    NSLog(@"获取失败,error:%@", error);
    }
    else {
    NSLog(@"获取成功,微博条数:%d", self.statuses.count);
    }
    }];


    不过还有很多接口没有实现。

    详细代码和使用说明可以参考:https://github.com/JimLiu/WeiboSDK

    希望有热心同学可以帮助完善没有完成的接口,可以提交修改后代码给我合并进去。

    Thanks
    34 条回复    1970-01-01 08:00:00 +08:00
    so898
        1
    so898  
       2013-08-12 22:52:52 +08:00   ❤️ 1
    根据本人的开发经验,有大量接口使用Block不太好……
    我当年也写了一大半套的Block形式接口,最后发现太难用了……特别是提醒部分……
    现在都是部分Block,部分Delegate,还有部分Notification这种方法……
    jimliu
        2
    jimliu  
    OP
       2013-08-12 22:55:51 +08:00
    @so898 我也写了Demo,基本上从应用场景上来看还挺好。
    tane05
        3
    tane05  
       2013-08-12 22:58:50 +08:00
    @so898 亲,有空能帮我看看那bug,原谅我的厚颜无耻!
    so898
        4
    so898  
       2013-08-12 23:04:51 +08:00
    @jimliu
    除了通知之外,Block现在在某些需要做后期处理的(比如说微博Cell渲染)的场景下会显得很难过……retina循环这个就是我心头无法消灭的的噩梦……
    话说大神你这么久没有更新这个SDK,怎么突然想着来更新了……
    现在已经是官方SDK的时代了……因为那啥跳转到官方APP来验证用户是在是太火了……现在基本上除了我这种还在做微博客户端的,都是跳转登陆了……上个月新浪更新SDK的时候直接开始提供封装好的包,导致接下来……微博SDK的空间……
    so898
        5
    so898  
       2013-08-12 23:05:30 +08:00
    @tane05
    大神您是……
    我这个小渣渣啥时候有能力帮别人修BUG了……
    您认错了吧……
    tane05
        6
    tane05  
       2013-08-12 23:18:44 +08:00
    @so898 路人甲,感觉你蛮有经验,想让您帮看看bug,具体参见刚刚发的帖子
    jimliu
        7
    jimliu  
    OP
       2013-08-12 23:20:29 +08:00
    @so898 我不觉得block和后期处理是冲突的,最多block里面还有些异步代码。
    你指的Retina循环是啥?

    其实SDWebImage就是个用block非常好的例子,建议可以看看它的代码和Demo。

    我更新么,纯粹就是为了技术结构上调整一下,现在看以前结构有点乱。

    微博SDK么,又不是商业用途,不必担心空间啥的。
    so898
        8
    so898  
       2013-08-12 23:31:46 +08:00
    @jimliu
    Retina循环时ARC下面一个非常恶心的玩意……具体来说就是一个Strong量在另外一个Strong量的Block里面的时候(我反正碰到的都是这种情况),就会有一个Warming……
    话说辛辛苦苦写一套SDK出来,没人用岂不是很寂寞……
    那个,不考虑加入SSO么?
    jimliu
        9
    jimliu  
    OP
       2013-08-12 23:36:02 +08:00
    @so898 你如果在block里面修改外部变量值,得要在外面的变量申明前加上 __block
    我觉得呀,你就是对block还不熟,其实蛮好的!

    SDK有很多人用的,所以不寂寞。

    SSO(单点登录)是Web应用下的吧?iOS用它干嘛?
    so898
        10
    so898  
       2013-08-12 23:48:06 +08:00
    @jimliu
    唉唉?!这样可以么?!我明天去看看,这样就可以解决掉好多weak type了……

    新浪不是有传说中的SSO登陆么,就是跳转到新浪的iOS App去进行验证,验证完了再跳回来
    66450146
        11
    66450146  
       2013-08-12 23:52:34 +08:00   ❤️ 1
    @so898 你是说 retain cycle 么。。。
    so898
        12
    so898  
       2013-08-12 23:55:30 +08:00
    @66450146
    Tnahk yuo
    英文不好,见谅……
    Hysteria
        13
    Hysteria  
       2013-08-12 23:59:59 +08:00
    @so898 retain cycle应该在非ARC环境下也会出现的,跟block的实现有关吧。如@jimliu所说,使用__blcok来声明变量就可以解决啦。
    jimliu
        14
    jimliu  
    OP
       2013-08-13 00:00:31 +08:00
    @so898 SSO第三方好像是没法实现
    so898
        15
    so898  
       2013-08-13 00:08:00 +08:00
    @Hysteria
    我手上这套代码是从非ARC通过Xcode自带的那货转过来,由于历史太久了我已经不记得怎么实现的了……这段时间每天看着Warming头疼……希望明天通过__block可以解决问题
    so898
        16
    so898  
       2013-08-13 00:09:17 +08:00
    @jimliu 新浪SDK上一版的源代码里面可以看到SSO相关部分,我曾经为了一个Scope验证试着重写了部分,最后竟然成功了……
    反正我觉得这货就是一个Application URI……
    jimliu
        17
    jimliu  
    OP
       2013-08-13 00:19:06 +08:00
    @so898 有空一起改改啊
    chmlai
        18
    chmlai  
       2013-08-13 00:20:53 +08:00
    单纯重做一个sina weibo 的SDK 意义不大吧.
    想弄类似shareKit那种
    so898
        19
    so898  
       2013-08-13 00:46:41 +08:00
    @jimliu 等我把我手上那个傻X微博客户端的第一版开源搞定了,肯定过去帮忙……
    freefcw
        20
    freefcw  
       2013-08-13 01:45:14 +08:00
    @so898 看了半天的retina我在想啥东西。。原来是retain...
    xuzhe
        21
    xuzhe  
       2013-08-13 09:11:31 +08:00   ❤️ 2
    ARC 下加 __block 不能打破 retain cycle 的。好好看看文档吧。要用 __weak 或者 __unsafe_unretained
    so898
        22
    so898  
       2013-08-13 09:33:22 +08:00
    @xuzhe 果然是这样的么……好伤感……
    zhicheng
        23
    zhicheng  
       2013-08-13 15:03:12 +08:00
    以前的你们 github 上的 SDK 有个 Bug ,我修掉了发 Pull Request 被华丽丽的忽视。后来你们还把项目给删掉了。
    qdvictory
        24
    qdvictory  
       2013-08-13 15:09:29 +08:00
    @jimliu sso第三方是可以实现的,再牛逼的静态包也阻挡不了我们前进的脚步- -

    https://github.com/qdvictory/WBShareKit/blob/master/WBShareKit/WBShareKit/CHShareManager.m

    98行
    nickcheng
        25
    nickcheng  
       2013-08-14 10:59:54 +08:00
    看到熟人喽~~~

    我搭车一个项目, 里面应该也用了宝玉的一些代码, 但基本上重写了, 现在自己的项目在用
    主要 Feature 就是 Block 和 SSO Auth.

    https://github.com/nickcheng/NCWeibo
    jimliu
        26
    jimliu  
    OP
       2013-08-16 09:44:50 +08:00
    @nickcheng nick你还混这里的啊,哈哈
    jimliu
        27
    jimliu  
    OP
       2013-08-16 09:45:19 +08:00
    @zhicheng 汗,确实没看见,抱歉
    jimliu
        28
    jimliu  
    OP
       2013-08-16 09:50:17 +08:00
    @qdvictory 牛的!
    qdvictory
        29
    qdvictory  
       2013-08-16 11:51:09 +08:00
    @jimliu 其实把新浪微博删掉,自己建一个app,模拟接收url schemes,应该能把连接都扒出来- -
    对新浪做sdk打成静态库表示万分鄙视
    favormm
        30
    favormm  
       2013-09-01 00:50:39 +08:00
    支持oauth1吗?最近我也在考虑封装一个sdk, 在研究oauth1. 接下来是oauth2
    agassi_yzh
        31
    agassi_yzh  
       2013-09-01 01:00:19 +08:00
    破retain循环:

    __weak typeop(aObject) blockAObject = aObject;

    这样
    agassi_yzh
        32
    agassi_yzh  
       2013-09-01 01:01:26 +08:00
    你们看官方那个sso的项目早期的时候没有打静态包。

    url scheme还是能够看到的...
    fanweixiao
        33
    fanweixiao  
       2013-09-01 01:51:39 +08:00
    來頂寶玉的帖子~
    so898
        34
    so898  
       2013-09-01 02:20:35 +08:00
    @agassi_yzh 那货没有很重要的Scope支持
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1210 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:21 · PVG 02:21 · LAX 10:21 · JFK 13:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.