我是Swift的新手,我正在努力学习如何使用Core Data.但是我收到了这个错误,我不确定我做错了什么.我在网上搜索并尝试了一些东西,但我无法做到.
Failed to call designated initializer on NSManagedObject class 'FirstCoreData.Course'
Run Code Online (Sandbox Code Playgroud)
当这一行执行时:
ncvc.currentCourse = newCourse
Run Code Online (Sandbox Code Playgroud)
在这个功能:
class TableViewController: UITableViewController, AddCourseViewControllerDelegate {
var managedObjectContext = NSManagedObjectContext.init(concurrencyType: NSManagedObjectContextConcurrencyType.MainQueueConcurrencyType)
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "addCourse" {
let ncvc = segue.destinationViewController as! NewCourseViewController
ncvc.delegate = self
let newCourse = NSEntityDescription.insertNewObjectForEntityForName("Course", inManagedObjectContext: self.managedObjectContext) as! Course
ncvc.currentCourse = newCourse
}
}
Run Code Online (Sandbox Code Playgroud)
由课程实体的"创建NSManagedObject子类..."生成的类:
import Foundation
import CoreData
class Course: NSManagedObject {
// Insert code here to add functionality to your managed object …Run Code Online (Sandbox Code Playgroud) 我有一个搜索,它下载一个JSON文件并在TableView中显示结果.如果用户搜索某些内容并获取结果列表,则搜索返回0结果的其他内容.第一组结果仍然在TableView中.我想在每次新搜索开始时清除TableView以防止发生这种情况.我已经尝试将数据源设置为nil并重新加载TableView但它无法正常工作.这就是我所拥有的:
var searchResults : [[String : AnyObject]]? = nil
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
print("DEBUG: searchBarSearchButtonClicked")
if searchBar.text > "" {
//--- This isn't working ---
searchResults = nil
tableView.reloadData()
//--------------------------
activityIndicator.startAnimating()
dbSearcher.startSearch(searchBar.text!) { (results) -> () in
self.searchResults = results
self.activityIndicator.stopAnimating()
self.tableView.reloadData()
}
searchBar.endEditing(true)
}
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if searchResults != nil {
print("DEBUG: Result count \(searchResults!.count)")
return searchResults!.count
} else {
print("DEBUG: Result count 0") //I don't see this other than …Run Code Online (Sandbox Code Playgroud) 我正在尝试将两个值绑定到一个标签的内容中,中间有一个空格.我正在关注MSDN(MSDN文章)中的一个示例,但我的标签是空的.这是我的代码:
类:
public class Item
{
//Other properties removed to shorten
public string name { get; set; }
public string typeLine { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
设置项目来源:
ItemsDisplay.ItemsSource = searchResults;
Run Code Online (Sandbox Code Playgroud)
XAML:
<ItemsControl Name="ItemsDisplay">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<!-- COLUMN DEFINITIONS ETC REMOVED TO SHORTEN -->
<StackPanel Grid.Column="1">
<Label Name="ItemName" Margin="10">
<Label.Content>
<MultiBinding StringFormat="{}{0} {1}">
<Binding Path="name" />
<Binding Path="typeLine" />
</MultiBinding>
</Label.Content>
</Label>
</StackPanel>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)
如果我绑定一个值,它就完美地工作了
<StackPanel Grid.Column="1">
<Label Name="ItemName" Margin="10" Content="{Binding Path=name}" />
<Label Name="ItemType" …Run Code Online (Sandbox Code Playgroud)