Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone Flickr SDK未转换为ARC_Iphone_Ios_Flickr - Fatal编程技术网

Iphone Flickr SDK未转换为ARC

Iphone Flickr SDK未转换为ARC,iphone,ios,flickr,Iphone,Ios,Flickr,我想集成flickr api,通过我的iphone应用程序将图像上传到flickr站点。我已经从github下载了snap&run代码。我已经在我的项目中集成了相同的SDK代码。但是它向我显示了转换到ARC时的错误。我遇到了阅读线问题。 这些错误位于OFUtilities.m文件中 static NSData *OFSha1(NSData *inData) { NSMutableData *result = [NSMutableData dataWithLength:CC_SHA1_DIGE

我想集成flickr api,通过我的iphone应用程序将图像上传到flickr站点。我已经从github下载了snap&run代码。我已经在我的项目中集成了相同的SDK代码。但是它向我显示了转换到ARC时的错误。我遇到了阅读线问题。 这些错误位于OFUtilities.m文件中

  static NSData *OFSha1(NSData *inData)
{
NSMutableData *result = [NSMutableData dataWithLength:CC_SHA1_DIGEST_LENGTH];
CC_SHA1_CTX context;
CC_SHA1_Init(&context);
CC_SHA1_Update(&context, [inData bytes], (CC_LONG)[inData length]);
CC_SHA1_Final([result mutableBytes], &context);
return result;
}
在上面的方法中,我得到了一个错误“调用CC\u SHA1\u Final没有匹配函数”

MSHA1BASE64的NSString*inKey,NSString*inMessage { NSData*keyData=[inKey DATAUSINGENCODE:NSUTF8StringEncoding]; if([keyData length]>CC_SHA1_BLOCK_字节){ keyData=OFSha1(keyData); } if([keyData length] 这里我得到的错误是“不能用const-value类型的r值初始化'const-uint8\t'类型的变量”


请帮帮我。感谢advanced。

有时将非arc代码转换为arc不会成功。如果您的外部框架不支持ARC,那么最好不要尝试转换。而是为特定文件设置编译器标志-fno objc arc,以便在没有arc的情况下编译

谢谢你的回复。但是在这里,我已经将flickr snap&run代码集成到了另一个项目中,而不是转换到它得到这些错误的ARC中
NSString *OFHMACSha1Base64(NSString *inKey, NSString *inMessage)
{
NSData *keyData = [inKey dataUsingEncoding:NSUTF8StringEncoding];

if ([keyData length] > CC_SHA1_BLOCK_BYTES) {
    keyData = OFSha1(keyData);
}

if ([keyData length] < CC_SHA1_BLOCK_BYTES) {
    NSUInteger padSize = CC_SHA1_BLOCK_BYTES - [keyData length];

    NSMutableData *paddedData = [NSMutableData dataWithData:keyData];
    [paddedData appendData:[NSMutableData dataWithLength:padSize]];
    keyData  = paddedData;
}

NSMutableData *oKeyPad = [NSMutableData dataWithLength:CC_SHA1_BLOCK_BYTES];
NSMutableData *iKeyPad = [NSMutableData dataWithLength:CC_SHA1_BLOCK_BYTES];

const uint8_t *kdPtr = [keyData bytes];
uint8_t *okpPtr = [oKeyPad mutableBytes];
uint8_t *ikpPtr = [iKeyPad mutableBytes];

memset(okpPtr, 0x5c, CC_SHA1_BLOCK_BYTES);
memset(ikpPtr, 0x36, CC_SHA1_BLOCK_BYTES);

NSUInteger i;
for (i = 0; i < CC_SHA1_BLOCK_BYTES; i++) {
    okpPtr[i] = okpPtr[i] ^ kdPtr[i];
    ikpPtr[i] = ikpPtr[i] ^ kdPtr[i];
}

NSData *msgData = [inMessage dataUsingEncoding:NSUTF8StringEncoding];

NSMutableData *innerData = [NSMutableData dataWithData:iKeyPad];
[innerData appendData:msgData];
NSData *innerDataHashed = OFSha1(innerData);

NSMutableData *outerData = [NSMutableData dataWithData:oKeyPad];
[outerData appendData:innerDataHashed];

NSData *outerHashedData = OFSha1(outerData);


size_t outputLength;
char *outputBuffer = NewBase64Encode([outerHashedData bytes], [outerHashedData length], true, &outputLength);

NSString *result = [[[NSString alloc] initWithBytes:outputBuffer length:outputLength encoding:NSASCIIStringEncoding] autorelease];
free(outputBuffer);
return result;
}