3

次の問題があり、解決できません。あなたの助けに感謝します。

NSS 文字列から md5 を計算するために、カテゴリは次のように定義されています。

NSString-md5.h

@interface NSString (MD5)
- (NSString *)MD5String;
@end

NSString-md5.m

#import <CommonCrypto/CommonDigest.h>
#import "NSString-md5.h"
@implementation NSString(MD5)
- (NSString *)MD5String
    {is
    const char *cstr = [self UTF8String];
    unsigned char result[16];    
    CC_MD5( cstr, strlen(cstr), 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]
        ];  
    }
@end

呼び出しコード (抜粋)

#import "NSString-md5.h"
...
NSLog(@"1 %@ ",message.text);
[message.text MD5String];

エラーメッセージで中止します:

2013-03-03 19:06:14.104 coffreFort[1230:11303] 1 aze 
2013-03-03 19:06:22.777 coffreFort[1230:11303] -[__NSCFString MD5String]: unrecognized selector sent to instance 0x71e62b0
2013-03-03 19:06:22.777 coffreFort[1230:11303] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString MD5String]: unrecognized selector sent to instance 0x71e62b0'

message.text は、によって定義された IBOutlet です。

@property (weak, nonatomic) IBOutlet UITextField *message;
4

1 に答える 1

10

これは、特にフレームワークやライブラリのコンテキストで、カテゴリが頻繁にアンロードされるCLANG (彼らが修正すると約束した) の問題-all_loadです-force_load-ObjCあなたのバイナリで。

于 2013-03-03T19:22:26.073 に答える