ios - 为什么 Xcode 认为我的变量在应该返回 NSString 时返回了 NSURL?

标签 ios objective-c xcode ios5 ios6

我收到以下警告:“从 NSURL 分配 NSString 的指针类型不兼容”。

这是有问题的代码:

cell.articleURL.text = [self.articles[row] URL];

我正在为一个标签分配 Article 对象的 URL 属性的值。 self.articles 数组仅用于保存 Article 对象。

在 Article 类中我有这个:

@property (nonatomic, strong) NSString *URL;

为什么它认为它是一个 NSURL?

最佳答案

问题是 self.articles[row] 将返回类型为 id 的对象,这意味着 Objective-C 运行时无法确定是哪个方法实现适用。它在另一个接口(interface)中找到一个 URL 方法并使用那个方法。

文章 A big weakness in Objective-C's weak typing 中有关于此问题的更多信息作者:马特·加拉格尔。

关于ios - 为什么 Xcode 认为我的变量在应该返回 NSString 时返回了 NSURL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15506767/

相关文章:

ios - 为什么按钮不起作用

javascript - IOS 应用程序 webview SVG ClipPath 问题

iPhone 3.1 SDK 相机访问

iphone - 带圆角的 UIView?

c++ - 如何将工作目录更改为程序的位置

ios - Xcode 8 beta 6 unwind segue 似乎坏了,因为 "WithSegue"被自动添加到 @IBAction unwind 方法名称

ios - 是否可以通过编程方式关闭 iOS 中的拨号辅助功能?

ios - Xcode Storyboard在添加 segue 后调整 Controller 场景的大小

ios - TableView :didEndEditingRowAtIndexPath: delegate method called twice

ios - 当我收到 Parse 的推送通知时,如何播放声音?