stringByAddingPercentEscapesUsingEncoding在9.0中已弃用。如何做到这一点?

时间:2015-12-01 08:24:58

标签: objective-c

我是初级开发人员,我得到了一个代码:

(NSString *)encodedStringFromObject:(id)object {
    return [[object description] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];    
}

但在9.0中必须使用stringByAddingPercentEncodingWithAllowedCharacters

我如何转移此代码? 我需要帮助,谢谢!

5 个答案:

答案 0 :(得分:67)

如果您只想快速查看此代码:

NSString * encodedString = [@"string to encode" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];

同时检查List of predefined characters sets

如果您想要解释,请阅读文档或至少本主题:How to encode a URL in Swift

答案 1 :(得分:3)

#include "TestClass.h"

答案 2 :(得分:2)

您已阅读这两项功能的规格。然后你会发现字符被转义序列替换的目的是什么。从那里你可以找到允许的字符集,必须在某处记录。

这是从初级到普通开发人员转变为高级开发人员的重要部分:确切了解您的代码应该做什么,应该在某处定义,然后让它做它应该做什么。

stringByAddingPercentEscapesUsingEncoding可能已被弃用,因为它不知道允许哪些字符,有时会给出错误的结果。

答案 3 :(得分:0)

这是在Swift中要做的解决方案

backgroundWorkerObject.WorkerSupportsCancellation = true;

答案 4 :(得分:0)

您可以使用stringByRemovingPercentEncoding代替stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding

[@"string" stringByRemovingPercentEncoding];