我正在使用KVC来序列化NSObject并尝试将其保存到NSUserDefaults,这给了我一个Attempt to insert non-property value当我尝试存储我的时候NSDictionary.
以下是相关对象的属性MyClass:
@interface MyClass : NSObject
@property (copy,nonatomic) NSNumber* value1;
@property (copy,nonatomic) NSNumber* value2;
@property (copy,nonatomic) NSString* value3;
@property (copy,nonatomic) NSString* value4;
@property (copy,nonatomic) NSString* value5;
@property (copy,nonatomic) NSString* value6;
@property (copy,nonatomic) NSString* value7;
@property (copy,nonatomic) NSString* value8;
@end
Run Code Online (Sandbox Code Playgroud)
什么时候保存MyClass,它出现在这里:
-(void)saveMyClass
{
NSArray* keys = [NSArray arrayWithObjects:
@"value1",
@"value2",
@"value3",
@"value4",
@"value5",
@"value6",
@"value7",
@"value8",
nil];
NSDictionary* dict = [self dictionaryWithValuesForKeys:keys];
for( id key in [dict …Run Code Online (Sandbox Code Playgroud) 我有一个带有列表结构的传入XML文件:
<list>
<listItem>
<name>elementOne</name>
<value>elementOneValue</name>
</listItem>
<listItem>
<name>elementTwo</name>
<value>elementTwoValue</name>
</listItem>
</list>
Run Code Online (Sandbox Code Playgroud)
我试图转换为这个结构:
<elementOne>elementOneValue</elementOne>
<elementTwo>elementTwoValue</elementTwo>
Run Code Online (Sandbox Code Playgroud)
这是使用XSL实现的简单逻辑,但我遇到了并发症.
<xsl:for-each select="/list/listItem">
<xsl:element name="<xsl:value-of select="name"/>">
<xsl:value-of select="value"/>
</xsl:element>
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
不起作用,因为我假设顺序双引号打破了<xsl:element>标记
<xsl:for-each select="/list/listItem">
<<xsl:value-of select="name"/>>
<xsl:value-of select="value"/>
</<xsl:value-of select="name"/>>
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
不起作用,因为我不能使用<<或>>和
<xsl:for-each select="/list/listItem">
<<xsl:value-of select="name"/>>
<xsl:value-of select="value"/>
</<xsl:value-of select="name"/>>
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
不起作用,因为我最终使用>和<在我的代码而不是XML可解析<或>.我希望这是一个非常简单的解决方案,但我无法在互联网上找到它的任何记录.我忽视的简单修复是什么?
我正在使用 Jon Crosby 的开源 Objective-C OAuth 库http://code.google.com/p/oauthconsumer/进行一些基本的 http 身份验证,它不处理令牌,只处理消费者密钥和消费者秘密。我的代码非常适用于 GET、带有 URL 参数的 GET 和 POST。但是,当我发出在 URL 中有参数的 POST 请求时,该请求授权失败。我试图找出原因。
服务器正在使用 Apache Commons OAuth,因此我想将我的基本字符串与该库进行比较。这是一个人为的示例以及我的库生成的基本字符串和签名。任何人都可以看到问题是什么?
consumer key: abcdef
consumer secret: ghijkl
POST request: http://emptyrandomhost.com/a/uriwith/params?interesting=foo&prolific=bar
my base string: POST&http%3A%2F%2Femptyrandomhost.com%2Fa%2Furiwith%2Fparams&interesting%3Dfoo%26oauth_consumer_key%3Dabcdef%26oauth_nonce%3D1%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D2%26oauth_version%3D1.0%26prolific%3Dbar
Run Code Online (Sandbox Code Playgroud)
此数据生成以下 OAuth 标头授权:
Authorization: OAuth oauth_consumer_key="abcdef",
oauth_version="1.0",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="2",
oauth_nonce="1",
oauth_signature="Z0PVIz5Lo4eB7aZFT8FE3%2FFlbz0%3D"
Run Code Online (Sandbox Code Playgroud)
显然我的签名是错误的。问题要么出在基本字符串的构造中,要么出在 HMAC-SHA1 函数的实现方式中(使用来自 CommonHMAC.h 的 Apple 的 CCHmac,所以希望不是这样),或者出在我的 Base64Transcoder 上,它是开源 C. 2003 年,Jonathan Wight/Toxic Software。我主要怀疑基本字符串,因为请求适用于 GET 和 POST,并且只有在使用上述 URL 参数的 POST 时才会失败。
有很多 OAuth 经验的人能发现上面的问题吗?其他非常有用的是 Apache Commons OAuth 在其身份验证中生成的基本字符串。谢谢。
iphone ×2
objective-c ×2
encryption ×1
kvc ×1
nsdictionary ×1
oauth ×1
templates ×1
value-of ×1
xml ×1
xslt ×1