相关疑难解决方法(0)

29
推荐指数
3
解决办法
6万
查看次数

在Xcode中查看NSData内容

我正在运行Xcode,我想转出一个NSData*.有问题的变量是缓冲区.有没有办法通过UI或GDB调试器执行此操作?

这是我在运行时看到的

编辑

我把笔记移到答案中了.

xcode objective-c

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

如何在objective-c中创建json

NSData* jsonDataToSendTheServer;

NSDictionary *setUser = [NSDictionary
            dictionaryWithObjectsAndKeys:[@"u" stringByAppendingString:my.id],@"id",
                                        @"GET_USER_INFO",@"command",
                                        @"",@"value",
                                        nil];

 NSLog(@"%@", jsonDataToSendTheServer);
Run Code Online (Sandbox Code Playgroud)

这是我的代码.当我运行上面的代码时,我得到了这个打印

<7b226964 223a2275 35383738 37373334 31222c22 636f6d6d 616e6422 3a224745 545f5553 45525f49 4e464f22 2c227661 6c756522 3a22227d>
Run Code Online (Sandbox Code Playgroud)

我不知道我是否可以创建一个json.

我怎样才能解决这个问题?

json objective-c ios nsjsonserialization

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

打开.webarchive修改它并保存它

我正在为Lion开发一个应用程序,我想要做的是打开.webarchive文件,修改DOM的片段,然后将修改后的DOM写出到同一个文件中.

到目前为止,这是我的代码.它打开webarchive,修改它,然后将其保存回文件.

    NSString *archivePath = @"/Users/tigger/Library/Mail/V2/MailData/Signatures/1216DD8D-C7E2-4DE1-9FCD-0A9A3412C788.webarchive";
    NSData *plistData = [NSData dataWithContentsOfFile:archivePath];
    NSString *error;
    NSPropertyListFormat format;
    NSMutableDictionary *plist;

    plist = (NSMutableDictionary *)[NSPropertyListSerialization propertyListFromData:plistData
                                             mutabilityOption:NSPropertyListMutableContainersAndLeaves
                                                       format:&format
                                             errorDescription:&error];
    if(!plist){
        printf("no plist");
        [error release];
    }else{
        NSString *s = [NSString stringWithUTF8String:[[[plist objectForKey:@"WebMainResource"] objectForKey:@"WebResourceData"] bytes]];
        NSString *new = [s stringByReplacingOccurrencesOfString:@"</body>" withString:@"hey there!</body>"];

        [[plist objectForKey:@"WebMainResource"] setObject:new forKey:@"WebResourceData"];
        printf("Archive: %s", [[plist description] UTF8String]);       
        NSData *data = [NSPropertyListSerialization dataFromPropertyList:plist format:NSPropertyListBinaryFormat_v1_0 errorDescription:nil];
        [data writeToURL:[NSURL fileURLWithPath:@"/Users/tigger/Library/Mail/V2/MailData/Signatures/test.webarchive"] atomically:YES];

    }
Run Code Online (Sandbox Code Playgroud)

问题是生成的webarchive无效.原件看起来像这样:

bplist00—_WebMainResource’  
_WebResourceTextEncodingName_WebResourceFrameName^WebResourceURL_WebResourceData_WebResourceMIMETypeUUTF-8PUdata:O<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: …
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c webarchive webview

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

NSXMLParser无法解析特殊字符(重音符号)

我正在使用NSXMLParser从url解析xml(我的代码与此处的代码几乎完全相同)

一些元素包含特殊字符,如"á",这使得一个单词很可能被分成两个(á和ndre).

这是我的loadXMLByURL

-(id) loadXMLByURL:(NSString *)urlString{
tickets     = [[NSMutableArray alloc] init];
NSURL *url      = [NSURL URLWithString:urlString];
NSData  *data   = [[NSData alloc] initWithContentsOfURL:url];
parser          = [[NSXMLParser alloc] initWithData:data];
parser.delegate = self;
[parser parse];
return self;}
Run Code Online (Sandbox Code Playgroud)

我很确定这是因为没有设置编码(我认为它需要是NSUTF8StringEncoding)但我不知道在哪里/如何应用它.

[更新]我的其余代码......

- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{    
    if ([elementname isEqualToString:@"ticket"]) 
    {
        currentTicket = [Ticket alloc];
    }

}

- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
    if ([elementname isEqualToString:@"name"]) 
    {
        currentTicket.name = currentNodeContent;
    } …
Run Code Online (Sandbox Code Playgroud)

xcode nsxmlparser nsxml xml-parsing nsxmlelement

10
推荐指数
1
解决办法
9332
查看次数

使用UTF-8编码将字符串转换为数据是否会失败?

为了将String实例转换为DataSwift中的实例,您可以使用data(using:allowLossyConversion:)它返回一个可选Data实例.

nil如果编码是UTF-8(String.Encoding.utf8),这个函数的返回值是否可以?

如果返回值不能nil,那么总是强制解包这样的转换是安全的.

string encoding utf-8 swift

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

Objective-C将NSData转换为NSString

以下是我尝试将NSData转换为NSString但代码返回"Program received signal:SIGABRT"的代码.

NSString *string= [NSString stringWithUTF8String:[data bytes]];
Run Code Online (Sandbox Code Playgroud)

要么

NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)

还有其他更好的方法吗?

iphone objective-c nsstring nsdata ios

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

如何将NSData转换为NSString

我知道之前已经问过这个问题了,我已经采用了几种方法,但是它们不起作用.

以下是我已经尝试过的:

NSString *newStr = [NSString stringWithUTF8String:[responseData bytes]];
NSString *newStr = [NSString stringWithFormat:@"%.*s", [responseData length], [responseData bytes]];
Run Code Online (Sandbox Code Playgroud)

它们都不起作用.在第一种情况下,它用null填充newStr.在第二,它填充垃圾字符.我从调试器日志(po responseData)知道我得到了有效的响应,就像bbbbbb 00 bbbbbb.[服务器将它们作为字节数组发送]

该怎么办?

编辑:我从http请求响应中接收此数据 - 使用ASIHTTPRequest库,以防任何人可以在该行上提供帮助.

iphone nsstring nsdata ios

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

NSData字节到字符串

我得到的NSData字节看起来像这样:

    2d2d2d2d 2d2d2d2d 2d2d2d2d 2d2d2d2d 2d2d2d2d 2d2d2d2d 2d2d2d2d 2d353731 35343039 37373139
    34383437 34303832 30333533 30383232 380d0a43 6f6e7465 6e742d44 6973706f 73697469 6f6e3a20 
    666f726d 2d646174 613b206e 616d653d 2266696c 65223b20 66696c65 6e616d65 
    3d224265 61636820 426f7973 202d2047 6f6f6420 56696272 6174696f 6e732e6d 
Run Code Online (Sandbox Code Playgroud)

我想将它转换为NSString,我试过这个方法,但它给了我一个字符串的零:

NSString* postInfo = [[NSString alloc] initWithBytes:[postDataChunk bytes] length:[postDataChunk length] encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)

iphone objective-c

3
推荐指数
1
解决办法
8653
查看次数

确定UTF-8编码的NSData是否包含以null结尾的字符串

我在NSData类别中有NSData-to-NSString转换,因为我总是使用NSString方法:initWithData:encoding:.但是,根据这个答案,/sf/answers/172749951/,并不是那么简单.

到目前为止,我在我的NSData类别中使用了此方法,以便与其他数据对象中的方法保持一致,这些方法从具有相同名称的方法返回字符串:

- (NSString *) stringValue
{
    return [[NSString alloc] initWithData:self encoding:NSUTF8StringEncoding];
}
Run Code Online (Sandbox Code Playgroud)

到目前为止它是成功的,但我想确定一个字符串是否以null结尾,以决定是否应该使用此方法,也来自答案链接:

NSString* str = [NSString stringWithUTF8String:[data bytes]];
Run Code Online (Sandbox Code Playgroud)

如何确定UTF-8编码是否NSData包含以空值终止的字符串?


得到下面的答案后,我为我的NSDataCategory方法编写了更全面的实现,stringValue:

- (NSString *) stringValue
{
    //Determine if string is null-terminated
    char lastByte;
    [self getBytes:&lastByte range:NSMakeRange([self length]-1, 1)];

    NSString *str;

    if (lastByte == 0x0) {
        //string is null-terminated
        str = [NSString stringWithUTF8String:[self bytes]];
    } else {
        //string is not null-terminated
        str = [[NSString …
Run Code Online (Sandbox Code Playgroud)

objective-c character-encoding nsstring nsdata ios

3
推荐指数
1
解决办法
2201
查看次数

使用 UIImageJPEGRepresentation() 时无法将 NSData 转换为 NSString?

我正在创建一个多部分图像数据上传请求。我通过 UIImageJPEGRepresentation 从 UIImage 获取 NSData 但是当我尝试将数据转换为字符串时我得到 nil 值

我已按照此链接将 NSData 转换为 NSString

将 UTF-8 编码的 NSData 转换为 NSString

这是我的代码:-

    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
    [request addValue:contentType forHTTPHeaderField:@"Content-Type"];
    NSMutableString *body = [NSMutableString string];
    [body appendFormat:@"--%@\r\n", boundary];
    int i =0;
    for (UIImage *image in imagesArray) {
        NSData *data = UIImageJPEGRepresentation(image, 1.0);
        [body appendFormat:@"Content-Disposition:form-data; name=\"userfile[]\"; filename=\"image%d.jpeg\"\r\n",i];
        [body appendFormat:@"Content-Type: image/*\r\n\r\n"];
        NSString *str = [NSString stringWithUTF8String:[data bytes]]; //this variable should not be nil
        [body appendFormat:@"%@",str];
        if (error)
        {
            NSLog(@"%@", error);
        }
        i++; …
Run Code Online (Sandbox Code Playgroud)

objective-c uiimagejpegrepresentation ios

0
推荐指数
1
解决办法
898
查看次数