iOS Swift';找不到成员executeFetchRequest';

iOS Swift';找不到成员executeFetchRequest';,ios,objective-c,core-data,swift,Ios,Objective C,Core Data,Swift,在尝试将一些小的现有代码移植到Swift时,我遇到了一点问题。 我可以在Objective-C中执行以下操作 NSMutablArray *myMutableArray = [NSMutableArray array]; myMutablArray = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error].mutableCopy; 然而,在我尝试使用swift时,我得到“找不到成员execut

在尝试将一些小的现有代码移植到Swift时,我遇到了一点问题。 我可以在Objective-C中执行以下操作

NSMutablArray *myMutableArray = [NSMutableArray array];
myMutablArray = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error].mutableCopy;
然而,在我尝试使用swift时,我得到“找不到成员executeFetchRequest”

class exampleTableViewController: UITableViewController {

  var managedObjectContext: NSManagedObjectContext? = nil
  var myMutableArray: NSMutableArray = NSMutablArray()

  override func viewWillAppear(animated: Bool) {        
      super.viewWillAppear(animated)

      var request = NSFetchRequest(entityName: "TestTable")
      var error: NSError? = nil

      self.myMutableArray = self.managedObjectContext!.executeFetchRequest(request, error: &error)       
   }
   ...
}
有人能给我指一下正确的方向吗

非常感谢


编辑:粘贴在xcode中的代码。

在调用executeFetchRequest之前,不需要初始化数组,调用将返回一个数组并销毁已创建的数组

我没有看到您创建的错误,您似乎有一个“本地”managedObjectContext变量,但您正在尝试引用self。尝试:

self.myMutableArray = managedObjectContext!.executeFetchRequest(request, error: &error)

假设您在第二个代码块中发布的两行之间没有代码。

在调用executeFetchRequest之前不需要初始化数组,调用将返回一个数组并销毁您已经创建的数组

我没有看到您创建的错误,您似乎有一个“本地”managedObjectContext变量,但您正在尝试引用self。尝试:

self.myMutableArray = managedObjectContext!.executeFetchRequest(request, error: &error)

假设您在第二个代码块中发布的两行之间没有代码。

该错误有点误导

它完整地说“我不知道任何返回可变数组的函数”

Swift是类型安全的,编译器会热情地执行它

var
类型更改为
NSArray
,这是函数
executeFetchRequest
返回的结果

class exampleTableViewController: UITableViewController {

    var managedObjectContext: NSManagedObjectContext? = nil
    var myArray: NSArray? = nil;

    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)

        var request = NSFetchRequest(entityName: "TestTable")
        var error: NSError? = nil

        self.myArray = self.managedObjectContext!.executeFetchRequest(request, error: &error)
    }
}
如果需要可变数组,则需要执行显式强制转换

let results = self.managedObjectContext!.executeFetchRequest(request, error: &error)

myMutableArray = NSMutableArray(array: results);

这个错误有点误导人

它完整地说“我不知道任何返回可变数组的函数”

Swift是类型安全的,编译器会热情地执行它

var
类型更改为
NSArray
,这是函数
executeFetchRequest
返回的结果

class exampleTableViewController: UITableViewController {

    var managedObjectContext: NSManagedObjectContext? = nil
    var myArray: NSArray? = nil;

    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)

        var request = NSFetchRequest(entityName: "TestTable")
        var error: NSError? = nil

        self.myArray = self.managedObjectContext!.executeFetchRequest(request, error: &error)
    }
}
如果需要可变数组,则需要执行显式强制转换

let results = self.managedObjectContext!.executeFetchRequest(request, error: &error)

myMutableArray = NSMutableArray(array: results);

您在
.managedObjectContext之前有一个流浪的
.manaself
@Cezar是的,这是一个输入错误,我不喜欢剪切/复制/粘贴。所以我是手工输入的,但是谢谢你是在操场上还是在你的Xcode项目中尝试这一点?@编码者或对不起,我应该说的是Xcode项目,请复制/粘贴你的代码,不做任何编辑,因此,我们可以看到您实际使用的代码,而不是您认为正在使用的代码。您在
.managedObjectContext之前有一个零散的
.manaself
@Cezar是的,这是一个输入错误,我不喜欢剪切/复制/粘贴。所以我是手工输入的,但是谢谢你是在操场上还是在你的Xcode项目中尝试这一点?@编码者或对不起,我应该说的是Xcode项目,请复制/粘贴你的代码,不做任何编辑,因此,我们可以看到您实际使用的代码,而不是您认为您正在使用的代码。在过去半个小时中,为了执行fetch请求,我一直在用我的头敲击代码,最终得到了您的答案。谢谢它起作用了……我在半个小时前一直在敲打代码来执行提取请求,最后得到了你的答案。谢谢它起作用了。。。。。。