ios - How can I call a category method from my UIViewcontroller class? -
error
hi have category base64 encoding, need call thing main class method. following category
code
#import <foundation/foundation.h> @interface nsstring (addition) - (nsstring *) base64stringfromdata:(nsdata *)data length:(int)length; @end
in .m file
#import "nsstring+addition.h" static char base64encodingtable[64] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' }; @implementation nsstring (addition) - (nsstring *) base64stringfromdata: (nsdata *)data length: (int)length { unsigned long ixtext, lentext; long ctremaining; unsigned char input[3], output[4]; short i, charsonline = 0, ctcopy; const unsigned char *raw; nsmutablestring *result; lentext = [data length]; if (lentext < 1) return @""; result = [nsmutablestring stringwithcapacity: lentext]; raw = [data bytes]; ixtext = 0; while (true) { ctremaining = lentext - ixtext; if (ctremaining <= 0) break; (i = 0; < 3; i++) { unsigned long ix = ixtext + i; if (ix < lentext) input[i] = raw[ix]; else input[i] = 0; } output[0] = (input[0] & 0xfc) >> 2; output[1] = ((input[0] & 0x03) << 4) | ((input[1] & 0xf0) >> 4); output[2] = ((input[1] & 0x0f) << 2) | ((input[2] & 0xc0) >> 6); output[3] = input[2] & 0x3f; ctcopy = 4; switch (ctremaining) { case 1: ctcopy = 2; break; case 2: ctcopy = 3; break; } (i = 0; < ctcopy; i++) [result appendstring: [nsstring stringwithformat: @"%c", base64encodingtable[output[i]]]]; (i = ctcopy; < 4; i++) [result appendstring: @"="]; ixtext += 3; charsonline += 4; if ((length > 0) && (charsonline >= length)) charsonline = 0; } return result; } @end
my uiviewcontroller methode code
i need call ategory method method
- (void)completetransaction:(skpaymenttransaction *)transaction { nslog(@"completetransaction..."); uialertview *alert=[[uialertview alloc]initwithtitle:@"alert" message:@"transaction completed." delegate:nil cancelbuttontitle:@"ok" otherbuttontitles:nil, nil]; [alert show]; [self providecontentforproductidentifier:transaction.payment.productidentifier]; nslog(@"naveen%@",transaction.transactionreceipt); //call category method here [[skpaymentqueue defaultqueue] finishtransaction:transaction]; }
nsstring *tsr=[nsstring base64stringfromdata:transaction.transactionreceipt length:[transaction.transactionreceipt length]]; nslog(@"%@",tsr);
Comments
Post a Comment