小编agf*_*105的帖子

比较没有时间组件的NSDates

在一个快速的操场上,我一直在使用

NSDate.date() 
Run Code Online (Sandbox Code Playgroud)

但是,这总是会附加时间元素.对于我的应用程序,我需要忽略时间元素.这在Swift中可能吗?怎么做到呢?即使我可以将时间元素设置为每个日期也同时工作.

此外,我正在尝试比较两个日期,目前我正在使用以下代码:

var earlierDate:NSDate = firstDate.earlierDate(secondDate)
Run Code Online (Sandbox Code Playgroud)

这是唯一的方法,还是可以忽略时间元素的方式?例如,如果他们是同一天,但不同的时间,我不想要结果.

time nsdate foundation ios swift

54
推荐指数
9
解决办法
4万
查看次数

Swift:使用UIDatePicker作为UITextField inputView不更新

我有一个文本字段,当它被选中时,弹出一个日期选择器而不是键盘,但它只在第一次更新今天的日期.用户更改日期,但文本字段不会继续更新.问题是什么?

这就是我调用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)

datepicker nsdate swift

21
推荐指数
1
解决办法
5万
查看次数

如何在Swift中绘制地址,将地址转换为经度和纬度坐标?

在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)

geocoding objective-c mkmapview swift

16
推荐指数
2
解决办法
2万
查看次数

如何在Swift字符串中找到最后一个子字符串?

在Objective-C我用过:

[@"abc def ghi abc def ghi" rangeOfString:@"c" options:NSBackwardsSearch];
Run Code Online (Sandbox Code Playgroud)

但现在NSBackWardsSearch似乎不存在.任何人都可以提供Swift的等效代码吗?

如果可能的话,我希望能够在整个字符串中找到字符编号.所以在上面的例子中它将返回3.

string substring swift

16
推荐指数
3
解决办法
1万
查看次数

保存,删除和从一对多关系核心数据中获取数据

我创建了一个这样的数据模型:

我有一个获取请求的代码:

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)

core-data one-to-many relationship swift

6
推荐指数
1
解决办法
185
查看次数

当我尝试在swift中加载我的tableview时,为什么会出现EXC_BAD_INSTRUCTION错误?

我在将一些值保存到我的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)

core-data uitableview swift

5
推荐指数
0
解决办法
1897
查看次数

如何在swift中实现手势识别器后找到按钮标签?

当有人在按钮内滑动时,我想要执行一次操作.

我目前的代码如下:

    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)

有没有人有办法解决吗?谢谢

uigesturerecognizer uicontrolevents swift

2
推荐指数
1
解决办法
3437
查看次数