我想借助NSValueTransformer加密一些核心数据列.我的想法是,我使用数据类型转换,并为我的数据类型定义一些转换器.在转换方法中,我想加密/解密该值.我定义了一个实际上什么也没做的变压器 - 目前没有实现加密功能.
@implementation StringCryptoTransformer
+ (Class)transformedValueClass { return [NSString class]; }
+ (BOOL)allowsReverseTransformation { return YES; }
- (NSString*)transformedValue:(id)value {
NSLog(@"Transformer: %@",value);
if([value isKindOfClass:[NSString class]]){
return value;
}
return nil;
}
- (NSString*)reverseTransformedValue:(id)value
{
return value;
}
Run Code Online (Sandbox Code Playgroud)
方法
- (NSString*)transformedValue:(id)value
Run Code Online (Sandbox Code Playgroud)
使用有效值调用但在获取对象时出现此错误:
*由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [__ NSCFString bytes]:无法识别的选择器发送到实例0xf5859f0'
有什么想法有什么不对?
编辑:
我意识到我必须转换为NSData,反之亦然.现在它工作正常
- (id)transformedValue:(id)value {
NSData *data = [((NSString*)value) dataUsingEncoding:NSUTF8StringEncoding];
return [CryptoUtils encryptWithKey:self.key data:data];
}
- (id)reverseTransformedValue:(id)value
{
NSData *data = [CryptoUtils decryptWithKey:self.key data:value];
return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}
Run Code Online (Sandbox Code Playgroud) 我在Angular 4中编写了一个自定义404页面,并希望保留输入的错误URL。例如,您可以在github上查看行为。它们显示不存在的URL的404页面。示例:https://github.com/cdkdfjkdjf
目前,我将路由器配置为:
{ path: '404', component: NotFoundComponent },
{ path: '**', redirectTo: '404' }
Run Code Online (Sandbox Code Playgroud)
知道如何存档吗?
需要发送到服务器的JSON是这样的:
[
{
"value": "0",
"optionId": "de07a0ae-9b85-4f2a-bd8f-28f0ccb55f81"
},
{
"value": "1",
"optionId": "abe075ef-d76e-45e0-ace9-e73218604b87"
},
{
"value": "0",
"optionId": "820124a6-a6ed-499e-8d0d-7ac04160f56d"
},
{
"value": "0",
"optionId": "0d8cb27a-2659-4e54-a4f0-0b0a10131da5"
}
]
Run Code Online (Sandbox Code Playgroud)
所以我创建了一个Dictionaries数组:
var parameters = [[String:NSObject]]()
Run Code Online (Sandbox Code Playgroud)
但Alamofire只接受字典.有没有办法自己做JSON编码把它作为参数传递给Alamofire?或者你会如何解决它?
无法将'[[String:NSObject]]'类型的值转换为预期的参数类型'[String:AnyObject]?'
给定:日期数组:[date1,date2,date3,...,dateN]
想要的:日期在[[date1,date2],[date3],...]内的月份数组,其中一个月的所有天都应在同一月份的数组内。
有办法做到这一点吗?我认为命令式的方法将很复杂。