小编Tho*_*mer的帖子

为什么NSUserDefaults不愿意保存我的NSDictionary?

我正在使用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)

iphone objective-c nsdictionary nsuserdefaults kvc

14
推荐指数
2
解决办法
1万
查看次数

xsl:value-of用作xsl:元素名称

我有一个带有列表结构的传入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">
  &lt;<xsl:value-of select="name"/>&gt;
    <xsl:value-of select="value"/>
  &lt;/<xsl:value-of select="name"/>&gt;
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)

不起作用,因为我最终使用>和<在我的代码而不是XML可解析<>.我希望这是一个非常简单的解决方案,但我无法在互联网上找到它的任何记录.我忽视的简单修复是什么?

xml xslt templates value-of

7
推荐指数
2
解决办法
2万
查看次数

OAuth 问题,POST 带参数

我正在使用 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 authentication encryption oauth objective-c

4
推荐指数
1
解决办法
6298
查看次数