小编sar*_*rah的帖子

更好的方式来获得ios swift上的一天的名字

我把这一天的名字命名为

func loadDayName(forDate date: NSDate) -> String{
    let myComponents = calendar.components(.Weekday, fromDate: date)
    let weekDay = myComponents.weekday
    switch weekDay {
    case 1:
        return "Sunday"
    case 2:
        return "Monday"
    case 3:
        return "Tuesday"
    case 4:
        return "Wednesday"
    case 5:
        return "Thursday"
    case 6:
        return "Friday"
    case 7:
        return "Saturday"
    default:
        return "Nada"
    }
}
Run Code Online (Sandbox Code Playgroud)

它是工作查找,但我想知道swift是否自带一些库自动比我在手动代码中做得更好

cocoa ios swift swift2

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

为什么标签栏项目的徽章没有更改

我正在尝试更改标签栏项目的徽章但没有成功.我明白标签栏控制器负责控制器的标签栏.

但是,标签栏本身中的某些内容可以由视图控制器(例如徽章)管理

在我的代码中我尝试了这个在视图中加载

self.tabBarItem.badgeValue = "3"
Run Code Online (Sandbox Code Playgroud)

但徽章中没有任何内容

然后我试了一下:

self.tabBarController?.tabBarItem.badgeValue = "3"
Run Code Online (Sandbox Code Playgroud)

哪个不起作用,好吧,我知道为什么第二个代码不起作用,它与使用导航控制器而不是导航项更改导航控件的标题相同.但我不知道为什么第一个代码不起作用

这是我的应用程序的hiechy,我在TeamsTableViewController中这样做,这是团队选项卡中的第一个视图控制器

在此输入图像描述

uitabbarcontroller uinavigationcontroller ios swift swift2

9
推荐指数
2
解决办法
1212
查看次数

为什么NSTimer在swift中只运行一次

我有一个http请求,如果我正确收到响应,那么我想启动一个每秒触发一个函数的计时器.该函数也是一个http请求.

这是我启动计时器的代码

    if let data = data {
        do{
            let resultJSON = try NSJSONSerialization.JSONObjectWithData(data, options: [])
            requestClient.id = resultJSON["id"] as! Double
            self.timerResponse = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "checkIfThereAreResponeses", userInfo: nil, repeats: true)
            self.timerResponse!.fire()
        }catch{
        }
    }
Run Code Online (Sandbox Code Playgroud)

如你所见,我正在调用一个名为的函数 checkIfThereAreResponses

在该函数中,我有一个print语句,并且该print语句只打印一次,尽管我的计时器应该每1秒工作一次

我有什么遗失?

这就是功能

 func checkIfThereAreResponeses(){
    if (requestClient!.id != nil) {
        let url = NSURL(string: "http://localhost:blablabla")
        let request = NSMutableURLRequest(URL: url)
        request.HTTPMethod = "POST"

        let session = NSURLSession.sharedSession()

        task = session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in
            if let error = error { …
Run Code Online (Sandbox Code Playgroud)

ios swift

7
推荐指数
1
解决办法
864
查看次数

Int工作时Int64不起作用

我收到一个JSON,我想解析它以获得一个值.我这样做

let ddd = oneJson["restaurantId"] as! Int
print("ddd = \(ddd)")
let restaurantId = oneJson["restaurantId"] as! Int64
Run Code Online (Sandbox Code Playgroud)

如你所见,我正在解析相同的字段.这是我的JSON

"location":"location here location","restaurantId":0
Run Code Online (Sandbox Code Playgroud)

print语句工作正常,但我得到了一个例外 oneJson["restaurantId"] as! Int64

在此输入图像描述

json ios swift

7
推荐指数
2
解决办法
585
查看次数

iOS 为什么 backBarButtonItem 在这种情况下为零

我有一个嵌入导航控制器的视图控制器,其中有一个按钮显示另一个视图控制器,如下所示:

在此输入图像描述

在第二个视图控制器中, 的值为self.navigationItem.backBarButtonItemnil,为什么?

虽然我在运行应用程序时可以看到后退按钮,如下所示:

在此输入图像描述

更新

我读到视图控制器中的后退按钮是前一个视图控制器的导航项的责任,更准确地说,它是前一个视图控制器中的导航项的责任。

所以我尝试在第一个视图控制器中执行此操作:

 self.navigationItem.backBarButtonItem!.title = "Wdd"
Run Code Online (Sandbox Code Playgroud)

但我得到了异常,因为 backBarButtonItem 在第一个视图控制器中也为零。

更新2

小伙伴们请看这里

https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/NavigationControllers.html#//apple_ref/doc/uid/TP40011313-CH2-SW3

有这句话

与当前视图控制器关联的导航项提供导航栏中心和右侧位置的内容。前一个视图控制器的导航项提供左侧位置的内容

uinavigationbar uinavigationcontroller uinavigationitem ios swift

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

为什么约会总是今天,虽然我通过不同的约会

这是我的代码

 let dateValue = formatterDate.dateFromString(request.date)
        print("da = \(request.date)")
        let dayValue = NSDate()
        let compnentsDate = myCalendar.components(.Year, fromDate: dateValue!)
        let componentsDay = myCalendar.components(.Year, fromDate: dayValue)
        if compnentsDate.year == componentsDay.year && compnentsDate.month == componentsDay.month && compnentsDate.day  == componentsDay.day {
            cell.dateLabel.text = "today"
        }else {
            if compnentsDate.year == componentsDay.year && compnentsDate.month == componentsDay.month && compnentsDate.day  == (componentsDay.day + 1 ){
            cell.dateLabel.text = "tomorrow"
            }else {
                cell.dateLabel.text = request.date
            }

        }
Run Code Online (Sandbox Code Playgroud)

如你所见,我正在制作印刷品,印刷品的价值是:

da = Jan, 25, 2016
Run Code Online (Sandbox Code Playgroud)

但是,代码总是转到第一个if语句,告诉我"今天"

告诉我为什么?

我的代码有什么问题?

ios swift

0
推荐指数
1
解决办法
40
查看次数