我是一名网络开发人员,我想把我的网络产品搬到iPhone上。其中一个产品就像谷歌Maps:在手机屏幕上显示地图,您可以拖动或调整地图的大小,并查看我们添加到地图的一些信息。

我知道有一些技术可以让你使用HTML、CSS和Javascript来开发原生iPhone应用。我列举了一些:

Ansca移动 PhoneGap Appcelerator

还有其他类似的产品吗?它们之间有什么区别?我该选哪一个呢?

我有一个叫做people的mongodb集合 其架构如下:

people: {
         name: String, 
         friends: [{firstName: String, lastName: String}]
        }

现在,我有一个非常基本的快速应用程序连接到数据库,并成功地创建“人”与一个空的朋友数组。

在应用程序的次要位置,有一个添加好友的表单。表单接收firstName和lastName,然后是带有名称字段的POSTs,同样用于引用适当的people对象。

我有一个困难的时间做的是创建一个新的朋友对象,然后“推”到朋友数组。

我知道当我通过mongo控制台这样做时,我使用$push作为查找标准后的第二个参数的更新函数,但我似乎找不到合适的方法让猫鼬这样做。

db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});

我试图使用web api的HttpClient做一个post到一个端点,需要登录的形式是一个标识帐户的HTTP cookie(这只是一些东西,是#ifdef'ed的发布版本)。

如何向HttpRequestMessage中添加cookie ?

Java并发实践仍然有效吗?我想知道书中描述的思想、概念和实现是否仍然符合最新的Java版本。

我这么问是因为最新的版本是2006年完成的。

在使用Java 8可选类时,有两种方法可以将值包装在可选类中。

String foobar = <value or null>;
Optional.of(foobar);         // May throw NullPointerException
Optional.ofNullable(foobar); // Safe from NullPointerException

我明白可选的。ofNullable是唯一安全的使用Optional的方式,但是为什么Optional。存在吗?为什么不直接使用Optional呢?nullable和在任何时候都是安全的?

假设我在Java 8中有以下功能接口:

interface Action<T, U> {
   U execute(T t);
}

在某些情况下,我需要一个没有参数或返回类型的操作。所以我写 就像这样:

Action<Void, Void> a = () -> { System.out.println("Do nothing!"); };

但是,它给了我编译错误,我需要把它写成

Action<Void, Void> a = (Void v) -> { System.out.println("Do nothing!"); return null;};

这很难看。是否有办法摆脱Void类型参数?

什么是等价的UI_USER_INTERFACE_IDIOM()在Swift检测之间的iPhone和iPad?

我得到一个使用未解决的标识符错误时,在Swift编译。

如果您有子文档数组,Mongoose会自动为每个子文档数组创建id。例子:

{
    _id: "mainId"
    subDocArray: [
      {
        _id: "unwantedId",
        field: "value"
      },
      {
        _id: "unwantedId",
        field: "value"
      }
    ]
}

是否有一种方法告诉猫鼬不为数组中的对象创建id ?

我正在写一个应用程序,如果用户在打电话时正在看应用程序,我需要改变视图。

我实现了以下方法:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    NSLog(@"viewWillAppear:");
    _sv.frame = CGRectMake(0.0, 0.0, 320.0, self.view.bounds.size.height);
}

但当应用程序返回前台时,它没有被调用。

我知道我可以实现:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarFrameChanged:) name:UIApplicationDidChangeStatusBarFrameNotification object:nil];

但我不想这么做我更愿意把我所有的布局信息放在viewWillAppear:方法中,并让它处理所有可能的场景。

我甚至尝试调用viewWillAppear: from applicationWillEnterForeground:,但我似乎无法确定在那一点上哪个是当前视图控制器。

有人知道正确的处理方法吗?我肯定我错过了一个显而易见的解决方案。

我们正在使用REST API开发服务器,它接受和响应JSON。问题是,如果您需要将图像从客户端上传到服务器。

注意:我也在谈论一个用例,其中实体(用户)可以有多个文件(carPhoto, licensePhoto),也有其他属性(名称,电子邮件……),但当你创建新用户时,你不发送这些图像,它们是在注册过程之后添加的。


我知道这些解决方案,但每一个都有一些缺陷

1. 使用multipart/form-data代替JSON

好:POST和PUT请求尽可能的RESTful,它们可以包含文本输入和文件。

缺点:它不再是JSON,相比multipart/form-data更容易测试、调试等

2. 允许更新单独的文件

创建新用户的POST请求不允许添加图像(这在我们的用例中是可以的,我在开始时说过),上传图片是通过PUT请求作为multipart/form-data来完成的,例如/users/4/carPhoto

好的:一切(除了文件上传本身)都保留在JSON中,很容易测试和调试(你可以记录完整的JSON请求,而不用担心它们的长度)

缺点:它不是直观的,你不能POST或PUT实体的所有变量,同时这个地址/users/4/carPhoto可以被认为是一个集合(REST API的标准用例看起来像这个/users/4/出货量)。通常你不能(也不想)GET/PUT实体的每个变量,例如users/4/name。您可以在用户/4处使用get获取名称并使用PUT更改名称。如果在id后面有东西,它通常是另一个集合,比如users/4/reviews

3.使用Base64

将其作为JSON发送,但使用Base64编码文件。

good:与第一个解决方案一样,它是尽可能RESTful的服务。

缺点:同样,测试和调试是非常糟糕的(身体可以有兆字节的数据),有增加的大小和处理时间-客户端和服务器


我很想用解不。但它也有它的缺点……谁能给我一个更好的“什么是最好的”解决方案?

我的目标是使基于rest的服务包含尽可能多的标准,同时我希望使它尽可能简单。