在一个快速的操场上,我一直在使用
NSDate.date()
Run Code Online (Sandbox Code Playgroud)
但是,这总是会附加时间元素.对于我的应用程序,我需要忽略时间元素.这在Swift中可能吗?怎么做到呢?即使我可以将时间元素设置为每个日期也同时工作.
此外,我正在尝试比较两个日期,目前我正在使用以下代码:
var earlierDate:NSDate = firstDate.earlierDate(secondDate)
Run Code Online (Sandbox Code Playgroud)
这是唯一的方法,还是可以忽略时间元素的方式?例如,如果他们是同一天,但不同的时间,我不想要结果.
我有一个文本字段,当它被选中时,弹出一个日期选择器而不是键盘,但它只在第一次更新今天的日期.用户更改日期,但文本字段不会继续更新.问题是什么?
这就是我调用Datepicker并控制输入到我的文本字段的日期的方法:
@IBAction func dp(sender: UITextField) {
var DatePickerView : UIDatePicker = UIDatePicker()
DatePickerView.datePickerMode = UIDatePickerMode.Date
textfieldjobdate.inputView = DatePickerView
DatePickerView.addTarget(self, action: Selector("handleDatePicker"), forControlEvents: UIControlEvents.ValueChanged)
}
func handleDatePicker() {
var DatePickerView : UIDatePicker = UIDatePicker()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd MMM yyyy"
textfieldjobdate.text = dateFormatter.stringFromDate(DatePickerView.date)
}
Run Code Online (Sandbox Code Playgroud) 在Objective-C中,此代码可以很好地绘制地址并找到经度和纬度坐标:
NSString *address = @"1 Infinite Loop, CA, USA";
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder geocodeAddressString:address
completionHandler:^(NSArray* placemarks, NSError* error){
// Check for returned placemarks
if (placemarks && placemarks.count > 0) {
CLPlacemark *topResult = [placemarks objectAtIndex:0];
// Create a MLPlacemark and add it to the map view
MKPlacemark *placemark = [[MKPlacemark alloc] initWithPlacemark:topResult];
[self.mapView addAnnotation:placemark];
[placemark release];
}
[geocoder release];
}];
Run Code Online (Sandbox Code Playgroud)
我一直在寻找使用Swift如何做到这一点的日子?!有人能指出我正确的方向吗?你能解释一下,如果用户需要互联网连接才能使用.对不起,如果这些问题听起来有点基础,但我对此很新,每天都在学习.
我知道我必须使用此代码,但无法找到实现它的方法
func geocodeAddressString(_ addressString: String!,
completionHandler completionHandler: CLGeocodeCompletionHandler!)
Run Code Online (Sandbox Code Playgroud) 在Objective-C我用过:
[@"abc def ghi abc def ghi" rangeOfString:@"c" options:NSBackwardsSearch];
Run Code Online (Sandbox Code Playgroud)
但现在NSBackWardsSearch似乎不存在.任何人都可以提供Swift的等效代码吗?
如果可能的话,我希望能够在整个字符串中找到字符编号.所以在上面的例子中它将返回3.
我创建了一个这样的数据模型:
我有一个获取请求的代码:
func roundFetchRequest() -> NSFetchRequest {
let fetchRequest = NSFetchRequest(entityName: "Customer")
print("Check here: \(myRoundIndexPath)")
//let predicate : NSPredicate = NSPredicate(format: "custRoundRel = %@", frc2.objectAtIndexPath(myRoundIndexPath!) as! RoundName) //ASSUME THIS IS CORRECT
let sortDescriptor = NSSortDescriptor(key: "c2fna", ascending: true)
//fetchRequest.predicate = predicate
fetchRequest.sortDescriptors = [sortDescriptor]
return fetchRequest
}
Run Code Online (Sandbox Code Playgroud)
我注释掉的代码没有出错,但我似乎无法将客户保存到RoundName实例.当我使用其属性保存客户时,我使用了以下代码:
func newCust() {
let cont = self.context
let newCustomer = NSEntityDescription.entityForName("Customer", inManagedObjectContext: cont)
let aCust = Customer(entity: newCustomer!, insertIntoManagedObjectContext: cont)
aCust.c2fna = firstName.text
aCust.c3lna = lastName.text
aCust.c4tel = tel.text
aCust.c5mob = mob.text …
Run Code Online (Sandbox Code Playgroud) 我在将一些值保存到我的coredata数据库后尝试填充我的tableview.我要求它显示我的代码中指示的一些值,但无论我做什么,我都会收到上述错误.有什么建议?我已尝试过其他一些有这个问题的帖子,但似乎没什么用.
我想不出我可能会给出一个零输出Swift没有预料到的地方.
override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?) -> UITableViewCell? {
let CellId: NSString = "Cell"
var cell: UITableViewCell = tableView?.dequeueReusableCellWithIdentifier(CellId) as UITableViewCell
if let ip = indexPath {
var data: NSManagedObject = myCustomers[ip.row] as NSManagedObject
var addno = data.valueForKeyPath("custaddno") as String
var addname = data.valueForKeyPath("custaddfirstline") as String
cell.textLabel.text = "\(addno) \(addname)"
var jcost = data.valueForKeyPath("custjobcost") as Float
var jfq = data.valueForKeyPath("custjobfq") as Float
var jfqtype = data.valueForKeyPath("custjobfqtype") as String
cell.detailTextLabel.text = "Charge: \(jcost) to be done every \(jfq) …
Run Code Online (Sandbox Code Playgroud) 当有人在按钮内滑动时,我想要执行一次操作.
我目前的代码如下:
let recogniser = UISwipeGestureRecognizer(target: self, action: "didTapButton2:")
recogniser.direction = .Up
button.addGestureRecognizer(recogniser)
func didTapButton2(sender: UIGestureRecognizer!) {
//Here I want to be able to recognise which button this was sent from (they are all tagged)
let button = sender. as UIButton //Gives an error
Run Code Online (Sandbox Code Playgroud)
我需要使用手势识别器而不是UIControlEvents,因为我只需要触发一次事件.使用它会使事件发生火灾 - 只需要进行一次:
button.addTarget(self, action: "didTapButton2:", forControlEvents: .TouchDragInside)
Run Code Online (Sandbox Code Playgroud)
有没有人有办法解决吗?谢谢
swift ×7
core-data ×2
nsdate ×2
datepicker ×1
foundation ×1
geocoding ×1
ios ×1
mkmapview ×1
objective-c ×1
one-to-many ×1
relationship ×1
string ×1
substring ×1
time ×1
uitableview ×1