小编F'x*_*F'x的帖子

如何让用户阅读错误消息?

如果您为非技术人员编程,您会发现自己处于高风险,用户不会阅读您措辞谨慎且具有启发性的错误消息,而只需点击第一个按钮就可以沮丧地耸耸肩.

所以,我想知道你可以推荐哪些好的做法来帮助用户真正阅读你的错误信息,而不是简单地放弃它.我能想到的想法会落在:

  • 格式化课程帮助; 也许是一个简单的短消息,带有"了解更多"按钮,可以生成更长,更详细的错误消息
  • 将所有错误消息链接到用户指南的某些部分(有些难以实现)
  • 只是不发出错误消息,只是拒绝执行任务(一种处理用户输入的"苹果"方式)

编辑:我想到的观众是一个相当广泛的用户群,不经常使用软件而且不是俘虏(即没有内部软件或狭隘的社区).在slashdot上询问了这个问题的更通用的形式,所以你可能想在那里检查一些答案.

user-interface runtime-error error-reporting ui-design

175
推荐指数
9
解决办法
4829
查看次数

python等效于filter()获取两个输出列表(即列表的分区)

假设我有一个列表和一个过滤功能.使用类似的东西

>>> filter(lambda x: x > 10, [1,4,12,7,42])
[12, 42]
Run Code Online (Sandbox Code Playgroud)

我可以得到符合标准的元素.是否有一个我可以使用的函数可以输出两个列表,一个元素匹配,剩下的元素之一?我可以filter()两次调用该函数,但这有点难看:)

编辑:元素的顺序应该是守恒的,我可能多次使用相同的元素.

python filter data-partitioning

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

如何在Qt跨平台应用程序中启用自动更新?

我喜欢能够在没有用户任何努力的情况下更新自己的应用程序(想想:适用于Mac的Sparkle框架).在Qt应用程序中是否可以使用任何代码/库来执行此操作,而不必担心操作系统的详细信息?

至少对于Windows,Mac和用户拥有的Linux二进制文件.

我可以在Mac版本上集成Sparkle,为Linux案例编写代码(仅用于独立的,用户拥有的二进制文件; 如果我的程序打包,我不会搞乱分发包装),并找人帮助我Windows方面,但这非常痛苦.

qt cross-platform auto-update

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

NSDate未返回设备的本地时区/默认时区

我的本地和默认时区是GMT +5,但是当我通过NSDate获取日期和时间时,它会返回GMT日期和时间.

例如,在设备上测试时我的代码的代码和输出为,[设备时区Islamabad GMT +5]

 NSTimeZone *lo = [NSTimeZone localTimeZone];
 NSLog(@" - current  local timezone  is  %@",lo); // GMT +5

2010-12-28 20:56:11.785 Done[484:307]  - current  local timezone  is  Local Time Zone (Asia/Karachi (GMT+05:00) offset 18000)

 NSTimeZone *df = [NSTimeZone defaultTimeZone];
 NSLog(@" - current  default timezone  is  %@",df); // GMT +5

2010-12-28 20:56:11.790 Done[484:307]  - current  default timezone  is  Asia/Karachi (GMT+05:00) offset 18000
Run Code Online (Sandbox Code Playgroud)

 NSDate *cDate = [NSDate date];
 NSLog(@"current date by NSDate %@",cDate); //but NSDate show GMT
2010-12-28 20:56:11.794 Done[484:307] …
Run Code Online (Sandbox Code Playgroud)

iphone ios

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

Objective-C init方法的正确语法

当合成的setter尝试释放未定义的myArray对象时,为什么这个公共属性初始化方案没有风险失败?或者属性对象是否自动初始化为nil,我根本不需要这样做?

@interface myClass : NSObject {
    NSArray* myArray;
}
@property (nonatomic, retain) NSArray* myArray;
@end

@implementation myClass
@synthesize myArray;
-(id)init {
    if ( self = [super init] ) {
        self.myArray = nil;
    }
    return self;
}

...
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ios

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

用LaTeX等效替换所有重音字符

给定一个Unicode字符串,我想用生成它们的LaTeX代码替换非ASCII字符(例如,已经é成为\'e,并œ成为\oe).我将它合并到Python代码中.这应该依赖于转换表,我已经提出了以下代码,这很简单,似乎很好用:

accents = [
    [ u"à", "\\`a"],
    [ u"é", "\\'e"]
  ]
translation_table = dict([(ord(k), unicode(v)) for k, v in accents])
print u"été à l'eau".translate(translation_table)
Run Code Online (Sandbox Code Playgroud)

但是,写一个相当完整的翻译表需要我很长时间,谷歌没有多大帮助.有人有这样的事情准备好,或知道在哪里找到一个?

PS:我是Python的新手,所以我欢迎对上面代码的评论.

python unicode latex diacritics

14
推荐指数
3
解决办法
5650
查看次数

在Xcode 4中,如何构建"Debug","Ad hoc"和"Store"设置?

使用新的Xcode 4,我导入了一个Xcode 3项目.我曾经有三套不同的构建设置,分别用于"Debug","Ad hoc"和"Store".现在,我没有在新界面中找到它们.设置(如代码签名选项)仍然存在于构建设置中,但如何选择其中一个?

xcode4

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

如何在特定的语言环境中调试Xcode应用程序(英语,比方说)?

当我开发一个带有Xcode的本地化界面的Mac应用程序时,我倾向于修改英语资源,并且只有在完成其余的开发工作时才对它们进行本地化/翻译.在非英语系统上,当我要求Xcode运行应用程序时,它会使用我自己语言的本地化,当我想选择自己时(并且在大多数情况下选择英语).

那么,如何在调试会话期间告诉Xcode我希望应用程序使用哪种语言?

xcode localization

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

门卫将允许两个具有相同标识符和不同证书的应用程序

我有两个具有相同标识符的应用程序.一个用于mac app store,一个用于其他目的(用于分发到mac app store之外).而我的两个应用程序并不完全相同,两者在代码和资源方面也存在很多差异.应用程序商店版本的应用程序由"第三方Mac开发人员应用程序:公司"签署,另一个由"开发者ID应用程序:公司"签名.

我的问题是 - 门卫是否允许我的两个应用程序在10.8 OS X上运行?谢谢.

更新:由于两个应用程序具有不同的指定要求但是相同的捆绑包,它应该运行.

更新:在我的测试中,我发现两个应用程序都在我的系统和其他系统中运行.但在某些系统中,它允许mac app store应用程序启动,但对于非mac应用程序商店应用程序,它显示一条消息,它会受到损害,我们应该将其移至垃圾箱.为什么相同的构建在不同的系统中显示两种不同的行为.

cocoa code-signing objective-c mac-app-store osx-mountain-lion

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

为什么不对XML档案中的标签名称进行boost :: serialization检查?

我开始在XML档案上使用boost :: serialization.我可以生成和读取数据,但是当我手工修改XML并交换两个标签时,它"无法失败"(即它会愉快地进行).

这是一个小的,自我完​​整的例子,展示了我所看到的:

#include <iostream>
#include <fstream>
#include <boost/archive/xml_oarchive.hpp>
#include <boost/archive/xml_iarchive.hpp>
#include <boost/serialization/nvp.hpp>
#include <boost/serialization/split_member.hpp>
using namespace std;

int main (void)
{
  boost::archive::xml_oarchive oa (cout);
  static const string producer = "XXX", version  = "0.0.1";
  oa << boost::serialization::make_nvp ("producer", producer);
  oa << boost::serialization::make_nvp ("producer_version", version);
}
Run Code Online (Sandbox Code Playgroud)

这会将XML写入标准输出,其中包含:

<producer>XXX</producer>
<producer_version>0.0.1</producer_version>
Run Code Online (Sandbox Code Playgroud)

现在,我用一个阅读器替换main函数中的所有代码:

  boost::archive::xml_iarchive ia (cin);
  string producer, version;
  ia >> boost::serialization::make_nvp ("producer", producer);
  ia >> boost::serialization::make_nvp ("producer_version", version);
  cout << producer << "  " << version << endl;
Run Code Online (Sandbox Code Playgroud)

当输入前一个输出时,它按预期工作(输出"XXX 0.0.1").但是,如果我提供XML,其中我更改了两行"producer"和"producer_version"的顺序,它仍然运行并输出"0.0.1 XXX".

因此,它无法识别标签没有预期的名称,只是继续. …

c++ boost xml-serialization boost-serialization

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