想将sinaweibo demo project 加入到 Three20UI中,当用户点击thumb photo 相册的时候,一张放大的图片上加上sinaweibo图标。现在点击sinaweibo图标,可以出现 OAuth 及 XAuth 选择界面,再点击OAuth 时,App crashes.
点击 XAuth 时,出现用户名及密码登录界面,输入后,程序同样崩溃。
用的是下面的代码:

- (void)clickActionItem {} in the three20UI as follows: - (void)clickActionItem { SinaWeiBoSDKDemoViewController *sinaWeiBoSDKDemoViewController = [[[SinaWeiBoSDKDemoViewController alloc] initWithNibName:@"SinaWeiBoSDKDemoViewController" bundle:nil] autorelease]; [self.navigationController pushViewController:sinaWeiBoSDKDemoViewController animated:YES]; }

问题出在这里:[pairs addObject:[NSString stringWithFormat:@"%@=%@", key, [[dict objectForKey:key] URLEncodedString]]];

找到了URLEncodedString 的定义,而且我的项目已经引用了这个定义,可为什么还报错哪?如何修改哪? 谢谢!

It is defined in the WBUtil.m ( which is already included in the Three20UI ) as :

- (NSString *)URLEncodedString
{
return [self URLEncodedStringWithCFStringEncoding:kCFStringEncodingUTF8];
}
-----------------   WBUtil.m
#import "WBUtil.h"
#import <CommonCrypto/CommonDigest.h>
#import <CommonCrypto/CommonHMAC.h>
#import "GTMBase64.h"

#pragma mark - NSData (WBEncode)

@implementation NSData (WBEncode)

- (NSString *)MD5EncodedString
{
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5([self bytes], [self length], result);

return [NSString stringWithFormat:@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
result[0], result[1], result[2], result[3], result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11], result[12], result[13], result[14], result[15]];
}

- (NSData *)HMACSHA1EncodedDataWithKey:(NSString *)key
{  
NSData *keyData = [key dataUsingEncoding:NSUTF8StringEncoding];
    void *buffer = malloc(CC_SHA1_DIGEST_LENGTH);
    CCHmac(kCCHmacAlgSHA1, [keyData bytes], [keyData length], [self bytes], [self length], buffer);

NSData *encodedData = [NSData dataWithBytesNoCopy:buffer length:CC_SHA1_DIGEST_LENGTH freeWhenDone:YES];
    return encodedData;
}

- (NSString *)base64EncodedString
{
return [GTMBase64 stringByEncodingData:self];
}

@end

#pragma mark - NSString (WBEncode)

@implementation NSString (WBEncode)

- (NSString *)MD5EncodedString
{
return [[self dataUsingEncoding:NSUTF8StringEncoding] MD5EncodedString];
}

- (NSData *)HMACSHA1EncodedDataWithKey:(NSString *)key
{
return [[self dataUsingEncoding:NSUTF8StringEncoding] HMACSHA1EncodedDataWithKey:key];
}

- (NSString *) base64EncodedString
{
return [[self dataUsingEncoding:NSUTF8StringEncoding] base64EncodedString];
}

- (NSString *)URLEncodedString
{
return [self URLEncodedStringWithCFStringEncoding:kCFStringEncodingUTF8];
}

- (NSString *)URLEncodedStringWithCFStringEncoding:(CFStringEncoding)encoding
{
return [(NSString *) CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)[[self mutableCopy] autorelease], NULL, CFSTR("=,!$&'()*+;@?\n\"<>#\t :/"), encoding) autorelease];
}

@end

#pragma mark - NSString (WBUtil)

@implementation NSString (WBUtil)

+ (NSString *)GUIDString
{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [(NSString *)string autorelease];
}

@end

得到如下 errors from the debugger c*****ole: [Session started at 2012-04-06 02:42:08 +0000.]
2012-04-06 10:42:21.656 TTNavigatorDemo[461:ef03] Current page in photo browser (1 of 10)
2012-04-06 10:42:23.635 TTNavigatorDemo[461:ef03] -[NSCFString URLEncodedString]: unrecognized selector sent to instance 0x1171e0
2012-04-06 10:42:23.638 TTNavigatorDemo[461:ef03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString URLEncodedString]: unrecognized selector sent to instance 0x1171e0'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x015875a9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x016db313 objc_exception_throw + 44
    2   CoreFoundation                      0x015890bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
    3   CoreFoundation                      0x014f8966 ___forwarding___ + 966
    4   CoreFoundation                      0x014f8522 _CF_forwarding_prep_0 + 50
    5   TTNavigatorDemo                     0x000bf4de +[WBRequest stringFromDictionary:] + 438
    6   TTNavigatorDemo                     0x000c05ad +[WBRequest serializeURL:params:httpMethod:] + 192
    7   TTNavigatorDemo                     0x000ba3db -[WBAuthorize startAuthorize] + 249
    8   TTNavigatorDemo                     0x000bd238 -[WBEngine logIn] + 592
    9   TTNavigatorDemo                     0x000c770d -[SinaWeiBoSDKDemoViewController onLogInOAuthButtonPressed] + 53
    10  UIKit                               0x004ab4fd -[UIApplication sendAction:to:from:forEvent:] + 119
    11  UIKit                               0x0053b799 -[UIControl sendAction:to:forEvent:] + 67
    12  UIKit                               0x0053dc2b -[UIControl(Internal) _sendActi*****ForEvents:withEvent:] + 527
    13  UIKit                               0x0053c7d8 -[UIControl touchesEnded:withEvent:] + 458
    14  UIKit                               0x004cfded -[UIWindow _sendTouchesForEvent:] + 567
    15  UIKit                               0x004b0c37 -[UIApplication sendEvent:] + 447
    16  UIKit                               0x004b5f2e _UIApplicationHandleEvent + 7576
    17  GraphicsServices                    0x01e53992 PurpleEventCallback + 1550
    18  CoreFoundation                      0x01568944 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
    19  CoreFoundation                      0x014c8cf7 __CFRunLoopDoSource1 + 215
    20  CoreFoundation                      0x014c5f83 __CFRunLoopRun + 979
    21  CoreFoundation                      0x014c5840 CFRunLoopRunSpecific + 208
    22  CoreFoundation                      0x014c5761 CFRunLoopRunInMode + 97
    23  GraphicsServices                    0x01e521c4 GSEventRunModal + 217
    24  GraphicsServices                    0x01e52289 GSEventRun + 115
    25  UIKit                               0x004b9c93 UIApplicationMain + 1160
    26  TTNavigatorDemo                     0x000028de main + 104
    27  TTNavigatorDemo                     0x0000286d start + 53
)
terminate called throwing an exception

如何将sinaweibo demo project 加入到 Three20UI中相关推荐

  1. AR!!!高通Vuforia-iOS-SDK 和官方Demo 集成到iOS 项目中所需要注意的几点.

    AR!!!高通Vuforia-iOS-SDK 和官方Demo 集成到iOS 项目中所需要注意的几点. 首先,要说明一下,博主是一名AR小白,根据公司的计划,要我往Vuforia iOS原生 + 项目i ...

  2. Android学习小Demo(13)Android中关于ContentObserver的使用

    在一些应用上,比如手机银行,QQ,微信等,很多时候我们都需要通过发送验证码到手机上,然后把验证码填上去,然后才能成功地继续去做下面一步事情. 而如果每次我们都要离开当前界面,然后去查收短信,记住验证码 ...

  3. demo:用matlab在excel中画图(背景填充颜色)

    通过excel单元格背景填色,做成图片的样子.最开始在一个公众号上看到这个做法并给出了些基本函数,就照着码了一下.做过去好久了,链接也找不到了,就先不贴了-上面没有给出详细代码,我自己的做法比较傻逼, ...

  4. ROS project part 1: Ubuntu中安装opencv包以及相应的依赖

    首先在ubuntu linux上安装opencv $ sudo apt-get install python-opencv 使用ipython 验证 opencv的安装 $ import cv2 as ...

  5. Android学习小Demo(14)Android中关于PopupWindow的使用

    在一些场景中,我们希望能够点击按钮, 然后弹出一个菜单,而这个菜单是显示在屏幕的中央的,那么在Android中可以通过PopupWindow来实现这个效果. 具体效果如下图: 如上图中,我们点击&qu ...

  6. Project Remind-You(持续更新中......)

    说明 一个类似于supervisor的进程监控框架,使用python编写.支持动态plugin插入删除. 程序框架 采用多进程的工作方式,主进程运行后.从配置文件中读出所有的plugin信息.并根据配 ...

  7. E-PUCK机器人-软件

    在e-puck上运行的嵌入式软件在git repo https://github.com/gctronic/e-puck-library中不断扩展和管理.包括一个完整的库,可与安装在e-puck上的所 ...

  8. E-puck机器人-小白学习笔记(一)准备工作

    目录 E-puck机器人 一.技术参数 dsPIC 30F6014A 二.软件 e-puck-library-master文件夹 BasicDemos.zip 三.编译 MPLAB是什么? pic单片 ...

  9. 框架:springboot组合spring、springmvc、mybatis的一个小demo

    Spring+SpringMVC+Mybatis就是大名顶顶的SSM了. 这里我们使用IDEA的SpringBoot和版本控制器MAVEN构建一个SSM的demo. 介绍: 在搭建过程中spring整 ...

最新文章

  1. 收藏 | 数据分析师最常用的10个机器学习算法!(附图解)
  2. android 自定义扫地机器人地图,扫地机如何正确操作进行APP建图?
  3. 设计模式(八)之单例模式
  4. 2020ICPC(上海) - Walker(分类讨论+二分)
  5. hdu 3079水题
  6. WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化
  7. jquery工具方法parseJSON
  8. Windows Server 2008通过计划任务定时执行bat文件
  9. linux使用rpm重装jdk
  10. Way back into love
  11. 电脑拖机,win10一台电脑两人用
  12. 步进电机基础(5.9)-步进电机的驱动与控制-三相步进电机的驱动电路
  13. 极大似然估计法(Maximum likelihood estimation, MLE)
  14. 如何检查网站死链接 分享检查死链接方法
  15. lintcode 输出赛程表
  16. Java EXCEL 表格导入导出(带下拉选-带VLOOKUP函数封装)
  17. 【Hexo+Next主题】相册功能搭建详细步骤
  18. 微信小程序 java理发店美容院预约系统springboot
  19. NV040C语音单片机芯片,节省MCU开发成本,在电取暖桌上的应用!
  20. python周环比增长率怎么算_平均增长速度可以根据各个环比增长速度直接求得。()...

热门文章

  1. 北林oj-算法设计与分析-Line up in the canteen(两种解法,附思路)
  2. html加载swf 进度条,Flash加载外部文件创建进度条3种方法
  3. pytorch实现dcgan_PyTorch版本DCGAN实现的注解
  4. php 强制输出数组,php怎么将对象强制转数组
  5. Linux添加用户并赋予/取消管理员权限
  6. 算法设计之0-1背包问题
  7. 英语学习过程中的几点体会(2)
  8. 服务器控件开发之复杂属性
  9. 诗和远方:无题(四十六)
  10. python读取log文件生成图形表_python提取log文件内容并画出图表