【问题标题】:NSString initWithContentsOfURL problemsNSString initWithContentsOfURL 问题
【发布时间】:2013-03-07 22:03:50
【问题描述】:

我正在更新一个 iOS 应用程序以成为一个好孩子,并清除一些不推荐使用的方法。我一直在使用NSString initWithContentsOfURL,我正在尝试实现新版本initWithContentsOfURL:usedEncoding:error:

我在视图控制器中使用了以下内容:

- (void)viewDidLoad {
    [super viewDidLoad];
    NSURL *url = [[NSURL alloc] initWithString:@"http://myurl.com/directory/file.txt"];
    NSError *error;
    NSStringEncoding *encoding = NULL;
    NSString *tryString = [[NSString alloc] initWithContentsOfURL:url
                                                 usedEncoding:encoding
                                                        error:NULL];
    NSLog(@"string:%@", tryString);
    [super viewDidLoad];
}

但我一直在error:NULL 点处出现断线。我试过error:nil 并使用指向预定义错误对象的指针作为nilNULL 但同样的事情发生了。有没有人有任何想法或提示。

【问题讨论】:

  • 检查文档,您使用的方法通过引用返回编码。您可能正在寻找这个代替 - (id)initWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error 并使用 NSUTF8StringEncoding。

标签: ios objective-c


【解决方案1】:
NSError *error = nil;
NSStringEncoding encoding = 0;

NSString *tryString = [[NSString alloc] initWithContentsOfURL:url
                                                 usedEncoding:&encoding
                                                        error:&error];

【讨论】:

  • 仍然在 NSError 行出现线程中断。谢谢 Monolo
  • 啊!! *错误指针在别处使用!!现在都在工作。非常感谢大家。两个代码 sn-ps 都很好用。谢谢各位。
【解决方案2】:

错误和编码都应该像这样传递:

NSError *error = nil;
NSStringEncoding encoding = nil;

NSString *tryString = [[NSString alloc] initWithContentsOfURL:url
                                                 usedEncoding:&encoding
                                                        error:&error];

【讨论】:

  • 谢谢。通过复制您的代码进行了尝试,现在在 NSError *error = nil; 处获取线程中断不过谢谢。也许其他地方有什么东西。
  • 这不是正确的方法。 encoding 不应该是指针。
  • 对不起,麦迪。我是 obj-c 和 ios 的新手。你能说得更具体一点吗?
  • @user1548284 该评论是给 Jacky Boy 的。您接受的答案中的代码是正确的。此答案中的代码不是。注意encoding 在两个答案中的声明和使用方式的不同。
  • 昨晚我做了一个改动,显然没有编辑。现在做出改变。谢谢@rmaddy。
猜你喜欢
  • 1970-01-01
  • 2013-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-01
  • 2011-03-28
  • 2013-09-11
相关资源
最近更新 更多