首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从NSURL实例变量创建NSURL -指针无效

从NSURL实例变量创建NSURL -指针无效
EN

Stack Overflow用户
提问于 2013-07-21 01:50:20
回答 2查看 284关注 0票数 0

我有一个对象,它将属性定义为NSURL

代码语言:javascript
复制
@interface fcpElement : NSObject
@property (copy) NSString* elementName;
@property (copy) NSURL* elementPath;
@property (copy) NSURL* elementParent;
@property () BOOL elementIsHidden;
@property (copy) NSString* elementType;

-(id)initWithName : (NSString*) elementName path: (NSURL*) elementPath parent: (NSURL*) elementParent hiddenValue: (BOOL) elementIsHidden type: (NSString*) elementType;

@end

在我的应用程序控制器中,我创建了一个NSMutableArray,并使用我的init…方法用我的对象填充它。然后我有一个按钮,它调用应用程序控制器上的一个方法,该方法通过从数组中的对象调用实例变量来创建一个新的NSURL,如下所示:

代码语言:javascript
复制
for(currentElement in _finalCutData) {
    NSURL *currentElementPath = [currentElement elementPath];

最后,我想要做一个比较,看看这个新的URL是否等于另一个URL,但如果我执行以下操作,我总是得到停止我的程序的错误:

代码语言:javascript
复制
NSURL *currentElementPathAbsolute = [currentElementPath absoluteURL];

错误:-__NSCFString absoluteURL:无法识别的选择器已发送到实例

如果我添加一个断点,它会告诉你currentElementPath是一个无效的指针。但是如果我NSLog [currentElement elementPath],我会得到其中包含的URL。

如何从我的实例变量中获取URL,以便可以使用它?我是否在属性声明中使用了错误的参数类型?或者是其他原因?

EN

回答 2

Stack Overflow用户

发布于 2013-07-21 06:13:47

您的问题很可能是此调用:

代码语言:javascript
复制
[currentElement elementPath];

返回的是字符串,而不是URL。-elementPath是如何实现的?你有没有看到任何编译器警告?

我假设-elementPath被实现为一个简单的getter方法(可能是一个@property)。在这种情况下,错误存在于最初存储该值的代码中。

您使用的是ARC还是手动内存管理?如果是后者,那么这里也有可能是僵尸。您没有保留URL,因此它将被释放,稍后将其替换为一个字符串。

票数 1
EN

Stack Overflow用户

发布于 2013-07-21 02:26:47

我很惊讶我似乎可以在这个论坛上提供帮助,因为我是一个初学者,但是NSURL类有你应该使用的初始化方法,比如initFileURLWithPath:你可能不应该覆盖NSURL初始化方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17764987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档