问题列表 - 第14896页

如何在Objective-C中使用Web服务?

我有一个在ColdFusion中开发的Web服务,我试图在iPhone上使用它.Web服务返回JSON,它应该非常易于阅读.

但是,我一直无法找到一个简单的iPhone应用程序调用Web服务和使用数据的简单示例.有没有我刚刚遗漏的好的教程或例子?

iphone coldfusion json web-services objective-c

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

如何计算将一个排序顺序转换为另一个排序顺序的绝对最小变化量?

目标

如何使用尽可能少的数据对描述如何将静态列表从一个订单重新排序到另一个订单的数据进行编码?

我有一种感觉,有一个算法或计算机科学术语可以帮助我,但现在我太过坚持问题,找出其他方法来看待它.

背景动机

我有一个部署到远程位置的程序,所有通信都是通过间歇性的极其昂贵的卫星连接进行的.这有点夸张,但数据成本接近每千字节一美元,每天只能发生几次.

在一天开始时,向用户提供项目列表,他们在现场外出并做东西,但最终结果或多或少是以不同顺序排序的相同项目列表.还有其他数据,但这对这个问题并不重要.

现在我发回所有发生的动作的记录并按顺序播放它们.当用户对系统感到满意时,移动记录列表开始接近仅发回所有项目的大小,并且通常移动的某些组合导致撤消先前的移动记录.

假设

  • 起始列表和结束列表由完全相同的项目组成
  • 每个项目都有一个唯一的id(32位整数)
  • 每个项目都有一个唯一的排序oder(32位整数)
  • 用户将拥有数百至数千或更多项目的列表
  • 用户通常会在一天内重新订购约100件商品
  • 可以检测到对订单的更改将项目移动到列表中的新位置
  • 一些"移动"可能会撤消之前的移动
  • 用于计算最佳解决方案的计算资源是便宜/无限的
  • 传输时间很昂贵
  • 发回更改数据比发回整个列表便宜

最简单的数据结构

出于解决此问题的目的,假设以下数据结构可用.

  • 项目清单
    • ITEM_ID
    • 排序
  • MoveRecord
    • item_a_id
    • new_a_position

这是一个示例列表.每个列表中的项目是相同的.请注意,即使只有少数项目已更改,但每个项目ID都有一个新的排序顺序,因此您不能只发送新的item_id/sort_order_id对.

**List 1: Original List**    **List 2: Re-ordered List**    
order - id                    order - id
     1. 10                         1. 90
     2. 20                         2. 30
     3. 30                         3. 40
     4. 40                         4. 50
     5. 50                         5. 60
     6. 60                         6. 10
     7. 70                         7. 80
     8. 80                         8. 70
     9. 90                         9. 20
Run Code Online (Sandbox Code Playgroud)

如何使用尽可能少的数据编码将列表1的顺序转换为列表2的顺序所需的更改?

好奇心是否有可能证明 …

sorting algorithm computer-science bandwidth

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

为什么编译器在以下示例中没有选择我的函数模板重载?

给出以下函数模板:

#include <vector>
#include <utility>

struct Base { };
struct Derived : Base { };

// #1
template <typename T1, typename T2>
void f(const T1& a, const T2& b)
{
};

// #2
template <typename T1, typename T2>
void f(const std::vector<std::pair<T1, T2> >& v, Base* p)
{
};
Run Code Online (Sandbox Code Playgroud)

为什么以下代码总是调用#1而不是#2重载?

int main()
{
    std::vector<std::pair<int, int> > v;
    Derived derived;

    f(100, 200);  // clearly calls overload #1
    f(v, &derived);         // always calls overload #1

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

鉴于第二个参数f是派生类型Base,我希望编译器选择重载#2,因为它比重载#1中的泛型类型更好. …

c++ templates overloading function-templates overload-resolution

5
推荐指数
2
解决办法
329
查看次数

锚标记,转到div类的开头w/USING jQuery

我想实现一个全局锚类型的功能.

我希望在我的header.inc文件中输入一个指向网页主要部分的链接.

当您选择链接时,它将滚动到页面的主要部分,该部分位于div类内容主体内

<div class="content-body">
  main content
</div>
Run Code Online (Sandbox Code Playgroud)

因此它将向下滚动到div开始的位置.

我想实现锚标记功能,但它转到div类,而不是id.

我想知道是否有办法用jQuery做到这一点.为什么我要这样做,是因为我可以在整个现有网站中全局实现这一点.

html jquery

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

如何掌握最新的计算机科学知识?

我正在重新阅读我的一些Steve McConnell书籍,这句话让我想到"科学家为了学习而建造,工程师为了建造而学习".在"为了建立而学习"的脉络中,我想知道:

软件工程师如何跟上最新技术和研究的最新进展?

通过ACM或IEEE的出版物似乎是研究人员发表的主要途径,但考虑到这些信息的封闭性,是否有人在研究界之外实际使用它?这种形式的研究也很新,风险很大,所以另外一个问题是你在哪里划出风险线?是值得研究前沿研究还是更好地等到它能够平装书.

编辑:我不是一个总菜鸟.我刚刚注意到(一些)老开发人员完全没有意识到新技术,甚至可能对新技术产生敌意.健康的怀疑总是有用的,但故意无知是危险的.为了防止这种情况发生在我自己身上,我对开发人员如何及时了解新趋势感兴趣.

computer-science

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

基于位值启用行为

我有一系列基于位值启用/禁用的行为.例如,行为"A"的状态为0或1,行为"B"为0或2,行为"C"为0或4等.如果包含状态的变量值为"5",则I知道行为"​​A"和"C"已启用."B"不是.我的程序应该在A&C上切换.

我不确定这叫什么,所以希望有人能给我一个名字,并把我推向正确的方向.如何基于状态变量以编程方式创建启用的功能列表?我想以这种方式控制20-30个行为.手动管理太多.

c# algorithm

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

如果一个键启动@符号,则在NSDictionary上使用valueForKeyPath?

我想valueForKeyPath在my 上使用NSDictionary,但问题是其中一个键是一个以@符号开头的字符串.我无法控制密钥的命名.

我在尝试创建密钥路径时遇到问题,因为我收到格式异常,即使在尝试转义@符号时也是如此:

这很好用:

[[[dict objectForKey:@"key1"] objectForKey:@"@specialKey"] objectForKey:@"key3"]
Run Code Online (Sandbox Code Playgroud)

但是这些都不起作用:

[dict valueForKeyPath:@"key1.@specialKey.key3"]
[dict valueForKeyPath:@"key1.@@specialKey.key3"]
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

谢谢,

麦克风

iphone objective-c nsdictionary key-value-coding

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

将模板类作为方法的参数传递

我有一个带有这样签名的类方法:

// someheader.h
class Blah {
...
  void DoSomeWork(class Screen& p);
..
};
Run Code Online (Sandbox Code Playgroud)

然而,Screen类应该现在变成一个模板,比如...

template <int width, int height>
class Screen {
...
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如何在someheader.h中更改方法的原型?

c++ templates

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

在ASP.NET MVC中重定向后发布

我在ASP.NET MVC应用程序中使用Redirect After Post模式.我有以下场景:

  1. 用户前往/controller/index他被要求填写表格的地方.
  2. 表单值已发布到/controller/calculate.
  3. Calculate操作基于输入执行计算,并实例化包含操作结果的复杂对象.存储此对象,TempData并将用户重定向到/controller/result.
  4. /controller/result从中检索结果TempData并将其呈现给用户.

这种方法的问题在于,如果用户在查看/controller/result页面中的结果时点击F5,则无法再将其呈现为TempData已过期且结果对象不再可用.

用户不希望出现这种行为.一种可能的解决方案是在POST之后重定向,而不是渲染结果视图.现在,如果用户点击F5,他会得到一个浏览器对话框,询问他是否要重新发布表单.这也是不希望的.

我想到的一个可能的解决方案是序列化结果对象并在重定向之前将其传递给URL,但AFAIK对GET请求的长度有一些限制,如果对象变得很大,我可能会遇到这种限制(特别是如果base64编码) ).

另一种可能性是使用Session对象而不是TempData持久化结果.但在实施此解决方案之前,我想知道是否有更好的方法.


更新:

进一步研究这个问题我发现如果我将结果对象重新放入其实际工作的TempData内部/controller/result:

public ActionResult Result()
{
    var result = TempData["result"];
    TempData["result"] = result;
    return View(result);
}
Run Code Online (Sandbox Code Playgroud)

但这感觉很脏.这种方法是否会产生任何副作用(例如切换到进程外会话提供程序,因为目前我使用的是InProc)?

asp.net-mvc

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

在ASP.MVC中,"新建"和"创建"RESTful操作名称或"创建"

rails约定是使用NewCreate for RESTful操作名称..NET MVC约定似乎是为两者使用Create(通常在针对真正的'Create'方法的操作上使用post限制器).

就个人而言,我更喜欢在.net中使用NewCreate,但是在给定约定的情况下一直使用Create.什么(如果有的话).NET MVC约定的好处是为这两个操作使用Create

这同样适用于编辑更新

rest asp.net-mvc

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