我想在我的Swift iOS应用程序中使用Core Data,但是如何从任何ViewControllers中调用Core Data的managedObjectContext?
假设我想调用在Objective-C中经常使用的这个方法:
self.managedObjectContext = ((AppDelegate *) [UIApplication sharedApplication].delegate).managedObjectContext;
Run Code Online (Sandbox Code Playgroud)
但是,当我在Swift文件中编写以下代码时,它收到了错误:UIApplicationDelegate does not have a member called managedObjectContext.
var appDelegate = UIApplication.sharedApplication().delegate
println(appDelegate.managedObjectContext)
Run Code Online (Sandbox Code Playgroud)
为什么会出错?因为我在创建应用程序时检查了Core Data,所以模板自动在AppDelegate.swift文件中定义了managedObjectContext变量.
那么缺少什么?我使用Xcode 6 beta 5.
我想UITableView从CGRectMake函数启动一个实例,但是当我尝试使用常量启动它而不是直接指定一个新的Int,例如:
UITableView(frame: CGRectMake(20, HEIGHT_OF_STATUS_AND_NAVIGATION_BAR + 120, tableWidth, tableHeight)
Run Code Online (Sandbox Code Playgroud)
,然后我收到一个错误:Int is not convertible to CGFloat.
所以我将其更改为以下代码:
UITableView(frame: CGRectMake(20, (HEIGHT_OF_STATUS_AND_NAVIGATION_BAR + 120) as CGFloat, tableWidth as CGFloat, tableHeight as CGFloat)) // `tableWidth` and `tableHeight` are both of type `Int`.
Run Code Online (Sandbox Code Playgroud)
,然后我收到一个错误:Cannot invoke + with an argument of type CGRect.
当然,我可以通过分配来启动它Int,例如CGRectMake(20 + 300 + 12, 44 + 120, 300, 480).但我想使用常量和变量.
那么错误是什么意思呢?我该如何解决?
我使用Xcode 6 beta 6.
在以下代码中:
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/db_name', function(err, db){
if (err) throw err;
var collection = db.collection('col_name');
console.log(collection.find().toArray(function(err, items){}));
});
Run Code Online (Sandbox Code Playgroud)
当我运行上面的内容时,它不会返回任何结果而是返回undefined.我错过了什么?
另外,为了确认db上有一些集合,我试图添加console.log(db.getCollectionNames());,但看起来它在Node.js驱动程序中没有这样的方法.那么仍然可以确认收藏品的存在吗?(无论如何我只是想在这些情况下使用它作为调试 - 通常我不需要这个方法).
谢谢.
我刚刚升级到Vim的7.4,但它看起来像当我被删除的单词或句子x或D,并试图解开它,我不能与消息撤消:Already at newest change.重做也没有用.为什么?我已经使用OS X内置的Vim(7.3)多年,并且没有与undo/redo相关的问题.
那么我该如何解决呢?或者在7.4中撤消和重做已经不存在了?最后,将我的文件恢复到删除之前的状态是否可行?
我想更改 的backgroundColor,UITableViewCell因此想要获取每个表视图单元格的索引号,因为我还想更改这些单元格相对于其索引号的颜色。
但是,如何从内部获取索引号tableView: cellForRowAtIndexPath:?例如,在以下代码中(在 内tableView: cellForRowAtIndexPath:):
let numberOfCell = indexPath.length // always returns 2, even if I add more cells
println(indexPath) // returns <NSIndexPath: 0xc000000000000016> {length = 2, path = 0 - 0}
for i in 0..<numberOfCell {
let alpha = CGFloat(1.0 - Double(i) / 10.0)
cell.backgroundColor = UIColor(red: 227/256, green: 245/256, blue: 61/256, alpha: alpha)
}
return cell
Run Code Online (Sandbox Code Playgroud)
我想alpha根据索引号更改每个单元格的值,但上面的代码使所有单元格的值都alpha为1.0,因为numberOfCell始终是2,即使我的表视图有四个对象。我不确定为什么它总是返回2。我添加了更多单元格,但结果没有改变。 …
我想在我的 上放置一个图像UITableViewCell,并在用户点击单元格时将单元格移动到详细信息视图控制器。但是,当用户点击仅放在单元格部分的图像时,我也想让单元格不移动到细节 VC。该单元格如下所示:
[cell.textLabel myImage accessoryType] <- UITableViewCell
Run Code Online (Sandbox Code Playgroud)
但是,当我像下面这样实现我的代码时,当用户点击单元格时,她必须移动到细节 VC,即使她点击图像覆盖的微小部分。didSelectRowAtIndexPath:当她点击图像时是否可以禁用?
var cell = self.tableView.dequeueReusableCellWithIdentifier(CellReuseIdentifier, forIndexPath: indexPath) as! UITableViewCell
var list = listArray[indexPath.row]
cell.textLabel?.text = list.name
cell.accessoryType = UITableViewCellAccessoryType.DetailButton
let image = UIImage(named: "myImage.png")
var imageView = UIImageView(image: image)
imageView.frame = CGRectMake(280, 4, 36, 36)
cell.addSubview(imageView)
return cell
Run Code Online (Sandbox Code Playgroud)
我试过了,imageView.userInteractionEnabled = false但结果没有改变。
另请注意,图像不是附件视图,因为我也想使用附件类型(两者都不能使用),因此您不能使用tableView:accessoryButtonTappedForRowWithIndexPath:委托方法。
swift ×4
ios ×3
uitableview ×2
cgrect ×1
cgrectmake ×1
core-data ×1
mongodb ×1
node.js ×1
nsindexpath ×1
vim ×1
xcode6 ×1