MD5 加密(2)



@interface NSString (MyExtensions)
  - (NSString *) md5;
  @end
  @implementation NSString (MyExtensions)
  - (NSString *) md5
  {
  const char *cStr = [self UTF8String];
  unsigned char result[16];
  CC_MD5( cStr, strlen(cStr), result ); // This is the md5 call
  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]
  ];
  }
  @end


声明对象 //与类的声明格式类似

@interface NSString (NumberConvenience)

- (NSNumber *) lengthAsNumber;

@end // NumberConvenience

//我们正在向String类里面添加一个NumberConvenience方法,可以添加很多个,只要名称不相同

2)实现部分

@implementation NSString (NumberConvenience)

- (NSNumber *) lengthAsNumber

{

unsigned int length = [self length];  //获得字符串的长度

return ([NSNumber numberWithUnsignedInt: length]);

} // lengthAsNumber

@end // NumberConvenience


现在就可以用了

int main (int argc, const char *argv[])

{

NSAutoreleasePool *pool;

pool = [[NSAutoreleasePool alloc] init];

NSMutableDictionary *dict;

dict = [NSMutableDictionary dictionary];

[dict setObject: [@"hello" lengthAsNumber]

forKey: @"hello"];

[dict setObject: [@"iLikeFish" lengthAsNumber]

forKey: @"iLikeFish"];

[dict setObject: [@"Once upon a time" lengthAsNumber]

forKey: @"Once upon a time"];

NSLog (@"%@", dict);

[pool release];

return (0);

} // main

//任何NSString类都将响应lengthAsNumber消息,正式这种兼容性使类别称为一个非常伟大的概念,不需要创建NSString的之类,类别同样可以完成同样的工作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值