iOS Swift';找不到成员executeFetchRequest';
在尝试将一些小的现有代码移植到Swift时,我遇到了一点问题。 我可以在Objective-C中执行以下操作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
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请求,我一直在用我的头敲击代码,最终得到了您的答案。谢谢它起作用了……我在半个小时前一直在敲打代码来执行提取请求,最后得到了你的答案。谢谢它起作用了。。。。。。