Arrays 用一个核心数据属性填充数组
将一个属性中的条目放入数组时遇到一些问题。然后将在UIPickerview中使用此数组。语言敏捷 swift中有许多关于Pickerviews和swift中核心数据的教程。但我还没有找到一个解释如何仅用一个属性填充数组的方法 更糟糕的是,我在将目标c转换为swift方面仍然做得很差 所以我有两个问题: 1我的解决方案是否正确:从一个属性构建一个数组,然后用该数组中的内容填充Pickerview 2如何在swift中获得该阵列 链接的目标C:Arrays 用一个核心数据属性填充数组,arrays,swift,core-data,Arrays,Swift,Core Data,将一个属性中的条目放入数组时遇到一些问题。然后将在UIPickerview中使用此数组。语言敏捷 swift中有许多关于Pickerviews和swift中核心数据的教程。但我还没有找到一个解释如何仅用一个属性填充数组的方法 更糟糕的是,我在将目标c转换为swift方面仍然做得很差 所以我有两个问题: 1我的解决方案是否正确:从一个属性构建一个数组,然后用该数组中的内容填充Pickerview 2如何在swift中获得该阵列 链接的目标C: NSManagedObjectContext *man
NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]
initWithEntityName:@"WeightLog"];
self.contactarray = [[managedObjectContext executeFetchRequest:fetchRequest
error:nil] mutableCopy];
titleNames = [[NSMutableArray alloc] init];
for (int i =0; i<=self.contactarray.count; i++) {
NSManagedObject *device = [self.contactarray objectAtIndex:i];
[titleNames addObject:device];
}
谢谢大家!
编辑:
工作代码
var myTitle: String = ""
var appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
var context:NSManagedObjectContext = appDel.managedObjectContext!
let fetchRequest = NSFetchRequest(entityName:"MyEntity")
var myTitles: [String] = []
if let myLogs = context.executeFetchRequest(fetchRequest, error: nil) {
myTitles = myLogs.map { $0.myTitle } // get an array of the 'myTitle' attributes
println(myTitles)
我只是在这里输入,所以不确定它是否编译:
let moc = self.managedObjectContext()
let fetchRequest = NSFetchRequest(entityName:"WeightLog")
var titleNames: [String] = []
if let weightLogs = moc.executeFetchRequest(fetchRequest, error: nil) as? [WeightLog] {
titleNames = weightLogs.map { $0.title } // get an array of the 'title' attributes
}
如果您从一个方法返回titleNames数组,那么我会这样写,即不使用var titleNames:
这会在if-let行上引发很多错误:带有getter/setter的变量不能具有初始值Computed属性必须具有显式类型…这在一次更改后生效:as?[WeightLog]给出了错误,所以我删除了它。printltitlenames nog只提供一个属性项的数组。
let moc = self.managedObjectContext()
let fetchRequest = NSFetchRequest(entityName:"WeightLog")
var titleNames: [String] = []
if let weightLogs = moc.executeFetchRequest(fetchRequest, error: nil) as? [WeightLog] {
titleNames = weightLogs.map { $0.title } // get an array of the 'title' attributes
}
let moc = self.managedObjectContext()
let fetchRequest = NSFetchRequest(entityName:"WeightLog")
if let weightLogs = moc.executeFetchRequest(fetchRequest, error: nil) as? [WeightLog] {
return weightLogs.map { $0.title } // get an array of the 'title' attributes
} else {
return []
}
lazy var managedObjectContext : NSManagedObjectContext? = {
let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
if let managedObjectContext = appDelegate.managedObjectContext
{
return managedObjectContext
}
else
{
return nil
}
}()
let fetchRequest = NSFetchRequest(entityName: "Entity")
if let fetchResults = managedObjectContext!.executeFetchRequest(fetchRequest, error: nil) as? [Entity]
{
for info in fetchResults
{
println(info.valueForKey("keyname"));
}
}