小编bbr*_*own的帖子

关于"潜在空取消引用"的Clang错误.

我在以下类型的代码中不断出现Clang错误,我无法弄清楚为什么它们是错误的或如何解决它们让Clang满意:

+ (NSString *)checkForLength: (NSString *)theString error: (NSError **)error {
    BOOL hasLength = ([theString length] > 0);
    if (hasLength) return theString;
    else {
        *error = [NSError errorWithDomain:@"ErrorDomain" code:hasLength userInfo:nil];
        return nil;
    }
}
Run Code Online (Sandbox Code Playgroud)

撇开这个例子的完全人为的性质(Clang确实反对,所以它足够说明),Clang在错误分配线上喋喋不休地提出以下异议:

潜在的空取消引用.根据"创建和返回NSError对象"中的编码标准,参数"错误"可以为空.

我喜欢原始的Clang报告.我已经阅读了所引用的文件,我看不到做出预期的方法; 我检查了一些开源的Cocoa库,这似乎是一个常见的习惯用法.有任何想法吗?

cocoa clang-static-analyzer

48
推荐指数
2
解决办法
8050
查看次数

DataContractJsonSerializer的反序列化问题

我有以下JSON:

[{
    "name": "numToRetrieve",
    "value": "3",
    "label": "Number of items to retrieve:",
    "items": {
        "1": "1",
        "3": "3",
        "5": "5"
    },
    "rules": {
        "range": "1-2"
    }
},
{
    "name": "showFoo",
    "value": "on",
    "label": "Show foo?"
},
{
    "name": "title",
    "value": "Foo",
    "label": "Foo:"
}]
Run Code Online (Sandbox Code Playgroud)

所有在一个行版本(适用于字符串文字):

[{\"name\":\"numToRetrieve\",\"value\":\"3\",\"label\":\"Number of items to retrieve:\",\"items\":{\"1\":\"1\",\"3\":\"3\",\"5\":\"5\"},\"rules\":{\"range\":\"1-2\"}},{\"name\":\"showFoo\",\"value\":\"on\",\"label\":\"Show foo?\"},{\"name\":\"title\",\"value\":\"Foo\",\"label\":\"Foo:\"}]
Run Code Online (Sandbox Code Playgroud)

在上述例子中,name,value,和label被需要的,但是itemsrules是可选的.

这是我试图反序列化的类:

using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;

namespace foofoo
{
    [DataContract]
    public sealed class FooDef
    {
        [DataMember(Name = …
Run Code Online (Sandbox Code Playgroud)

c# wcf serialization json dictionary

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

在使用RSA在iPhone上加密的C#中解密时遇到问题

到目前为止,我已经花了两天时间来处理这个问题,并且可以根据我的需要进行梳理,所以这是最后的选择.

我有一个X509证书,其公钥存储在iPhone的钥匙串中(此时仅为模拟器).在ASP.NET方面,我在证书库中获得了带有私钥的证书.当我在iPhone上加密字符串并在服务器上解密时,我收到CryptographicException"错误的数据".我尝试了Array.ReverseRSACryptoServiceProvider页面上建议的远景,但它没有帮助.

我比较了两侧的64弦,它们是相同的.我在解码后比较了原始字节数组,它们也相等.如果我使用公钥在服务器上加密,则字节数组与iPhone的版本不同,并且可以使用私钥轻松解密.原始明文字符串是115个字符,因此它在我的2048位密钥的256字节限制范围内.

这是iPhone加密方法(几乎是CryptoExercise示例应用程序wrapSymmetricKey方法):

+ (NSData *)encrypt:(NSString *)plainText usingKey:(SecKeyRef)key error:(NSError **)err
{
    size_t cipherBufferSize = SecKeyGetBlockSize(key);
    uint8_t *cipherBuffer = NULL;
    cipherBuffer = malloc(cipherBufferSize * sizeof(uint8_t));
    memset((void *)cipherBuffer, 0x0, cipherBufferSize);
    NSData *plainTextBytes = [plainText dataUsingEncoding:NSUTF8StringEncoding];
    OSStatus status = SecKeyEncrypt(key, kSecPaddingNone,
                                (const uint8_t *)[plainTextBytes bytes], 
                                [plainTextBytes length], cipherBuffer, 
                                &cipherBufferSize);
    if (status == noErr)
    {
        NSData *encryptedBytes = [[[NSData alloc]
                    initWithBytes:(const void *)cipherBuffer 
                    length:cipherBufferSize] autorelease];
        if (cipherBuffer)
        {
            free(cipherBuffer);
        }
        NSLog(@"Encrypted text (%d …
Run Code Online (Sandbox Code Playgroud)

c# iphone encryption rsa

8
推荐指数
1
解决办法
5127
查看次数

在UITableViewCell图像上设置UIImage尺寸

我有一个标准UITableViewCell,我正在使用文本和图像属性来显示favicon.ico和标签.在大多数情况下,这非常有效,因为UIImage支持ICO格式.但是,有些网站(如Amazon.com所说)有favicon.ico利用ICO格式在同一文件中存储多种尺寸的能力.亚马逊存储四种不同的尺寸,一直到48x48.

这导致大多数图像为16x16,除了少数以32x32或48x48进入并使一切看起来很糟糕.我在这里搜索过,官方论坛,文档和其他地方没有成功.我已经尝试了一些我能想到的约束图像尺寸的东西.唯一有效的是一个未记录的方法,我不打算使用它.这是我的第一个应用程序和我第一次使用Cocoa(来自C#).

如果我不清楚我在寻找什么,理想情况下,建议将围绕设置尺寸,UIImage以便48x48版本可以缩小到16x16或者告诉UIImage使用ICO中存在的16x16版本的方法文件.我不一定需要代码:只是建议一种方法对我没问题.

有没有人有什么建议?(我在官方论坛上也问过,因为我已经沉迷了一天以上.如果在那里发布了解决方案,我也会把它放在这里.)

iphone favicon cocoa-touch objective-c uikit

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

Objective-C上下文中不熟悉的C语法

我是从C#来到Objective-C而没有任何C语言的中间知识.(是的,是的,我需要在某些时候学习C并且我完全打算这样做.)在Apple的证书,密钥和信任服务编程指南中,那里是以下代码:

static const UInt8 publicKeyIdentifier[] = "com.apple.sample.publickey\0";
static const UInt8 privateKeyIdentifier[] = "com.apple.sample.privatekey\0";
Run Code Online (Sandbox Code Playgroud)

我有一个NSString我想在这里使用的标识符,对于我的生活,我无法弄清楚如何将其纳入这个数据结构.通过谷歌搜索也没有结果.我看着NSString类参考,看着UTF8StringgetCharacters方法,但我不能让产品进入结构.

我错过了什么简单易行的技巧?

string cocoa constants objective-c nsstring

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