小编Ker*_*rog的帖子

两个日期之间的十进制月份数

你如何在php中找到两个日期之间的十进制月份数?

我试过下面的代码:

$date1 = '2010-01-25';
$date2 = '2010-02-20';

$ts1 = strtotime($date1);
$ts2 = strtotime($date2);

$year1 = date('Y', $ts1);
$year2 = date('Y', $ts2);

$month1 = date('m', $ts1);
$month2 = date('m', $ts2);

$day1 = date('d', $ts1);
$day2 = date('d', $ts2);

$diff = (($year2 - $year1) * 12) + ($month2 - $month1);
Run Code Online (Sandbox Code Playgroud)

但它只给了我整整几个月的时间。我想要小数。像 1.5 个月或 1.4 个月。

php

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

NsError和userinfo

我正在构建一个IOS SDK.

基本上,我正在进行异步网络请求(API调用).出现错误时,将返回带有"error_key","error_description","error_code"键的字典.

如何使用NSError表示这三个信息?

我正在做以下事情:

 NSMutableDictionary* details = [NSMutableDictionary dictionary];
[details setValue: error_description forKey: NSLocalizedDescriptionKey];
[NSError errorWithDomain: APPErrorDomain code: error_code userInfo: details];
Run Code Online (Sandbox Code Playgroud)

如何更改userinfo以同时考虑error_key?

objective-c ios

4
推荐指数
2
解决办法
4444
查看次数

使用dispatch_once

我有以下代码:

  static NSDictionary * errorDescriptions = nil;

+ (NSString *) errorsFromCode: (WPErrorCode) code {

    if(errorDescriptions == nil) {
        errorDescriptions  =  @{[NSNumber numberWithInt: InvalidCar]:  NSLocalizedStringFromTable(@"Car is invalid.", @"WePay", @"validation: invalid car"), ...
    }

    return [errorDescriptions objectForKey: [NSNumber numberWithInt: code]];
}
Run Code Online (Sandbox Code Playgroud)

我得到建议将上面的代码更改为:

+ (NSString *) errorsFromCode: (WPErrorCode) code {
    static NSDictionary * errorDescriptions = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        errorDescriptions  =  @{[NSNumber numberWithInt: InvalidCar]:  NSLocalizedStringFromTable(@"Car is invalid.", @"WePay", @"validation: invalid car"), ...
     }
     return [errorDescriptions objectForKey: [NSNumber numberWithInt: code]];
}
Run Code Online (Sandbox Code Playgroud)

为什么会这样?为什么我必须使用dispatch_once?

objective-c grand-central-dispatch

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

基金会出口

Objective-c中FOUNDATION EXPORT的用途是什么?

所以我有:

KError.h

FOUNDATION_EXPORT NSString *const KAPPErrorDomain;

enum {
    KPUnexpectedError = -1,
};
Run Code Online (Sandbox Code Playgroud)

KError.m:

#import "KError.h"

NSString *const KAPPErrorDomain = @"com.kexample.myapp";
Run Code Online (Sandbox Code Playgroud)

我假设在这种情况下使用Foundation_export时,它是否能够在另一个文件中使用变量?

那么在KService.m中,我可以毫无问题地引用KAppErrorDomain吗?

objective-c ios

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

创建更好的面向对象设计

我有以下课程:

Teacher
Student
Class (like a school class)
Run Code Online (Sandbox Code Playgroud)

它们都来自具有以下代码的KObject:

- initWithKey
- send
- processKey
Run Code Online (Sandbox Code Playgroud)

Teacher,Student Class都使用来自KObject父类的函数processKey和initWithKey.他们实现了自己的发送版本.我遇到的问题是KObject不应该被实例化.它更像是一个抽象类,但在objective-c中没有抽象类概念.它仅对允许子类访问一个属性和两个函数有用.

我能做什么才能使KObject无法实例化,但仍允许子类访问KObject的函数和属性?

objective-c ios

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

如何移动到另一个导航控制器

我有一个导航控制器,我想转移到另一个导航控制器.因此,当人们注销时,他们会转到登录注册导航控制器.我怎样才能在ios中完成这项工作?

iphone cocoa-touch objective-c ios4 ios5

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

在Objective-C中编写SDK

基本上,我想使用我正在编写的SDK进行api调用.

我有以下课程:

  • 汽车
  • CarData(存储创建汽车所需的输入值,如模型,制造等)

基本上要创建一辆汽车,我会做以下事情:

[Car carWithData: cardata onSuccess: successHandler onError: errorHandler] 
Run Code Online (Sandbox Code Playgroud)

这基本上是一个工厂方法,它在发出API调用请求并使用响应填充新的Car类并将该实例传递给successHandler之后创建Car的实例.

所以"Car"有上面的静态方法来创建那辆车,还有非静态的方法来编辑,删除汽车(这会编辑,删除对服务器的API调用)

因此,当Car创建静态方法时,通过执行以下操作将新车传递给successHandler:

successHandler([[Car alloc] initWithDictionary: dictionary)
Run Code Online (Sandbox Code Playgroud)

成功处理程序可以继续使用该新车执行以下操作:

[car update: cardata]
[car delete]
Run Code Online (Sandbox Code Playgroud)

考虑到新车对象现在每辆车都有一个ID,它可以传递给更新和删除API调用.

我的问题:

  • 我是否需要cardata对象来存储用户输入,还是可以将它们存储在car对象中,以后存储所有api调用的响应?
  • 我该如何改进这个模型?

关于CarData,请注意不同的API调用可能有不同的输入.所以create function可能需要知道model,make等,但是find函数可能需要知道要查找的项数,限制,起始id等.

objective-c ios

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