小编Ter*_*ium的帖子

MacOSX:如何禁用重音字符输入

我在MacOSX Lion上使用Eclipse Juno并且有一个让我疯狂的问题(在Xcode和Appcode中一切正常).我经常打印一个引号/撇号并移动插入符号.但是在这个Mac版本的Eclipse中,我键入的引号用橙色标记突出显示(看起来像Mac智能引号功能),当我移动插入符号时 - 引用消失!我试过了

defaults write NSGlobalDomain AutomaticQuoteSubstitutionEnabled -bool false
Run Code Online (Sandbox Code Playgroud)

要全局禁用智能qotes,重新启动计算机,但这没有帮助.

此外,我试图在Eclipse首选项中找到与"引用","智能","更正"相关的内容,但没有运气.

试图禁用'智能插入模式' - 没用.

尝试将Java->打字 - >自动关闭 - >字符串设置为"打开" - 但是现在当我在打印引号后移动插入符号时,eclipse将其翻倍而不是像之前那样删除.也烦人.为什么在其他程序中引用处理按预期工作但我不能在Eclipse中以相同的方式工作?

顺便说一句,当我最近按下引号然后我得到'ä'符号.所以我认为这与自动更正有关.但即使我禁用语言和文本 - >自动替换eclipse将"+'a'替换为'ä'.如何禁用此行为?

macos quotes diacritics

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

仅横向应用程序中的GameCenter身份验证会引发UIApplicationInvalidInterfaceOrientation

问题:如果用户未登录GameCenter帐户 - GameCenter身份验证视图以纵向模式启动(在ios 5中有一个模式对话框)要求登录.但是如果我在xcode(项目摘要)或supportedInterfaceOrientationsForWindow中禁用纵向模式: (因为我的应用程序应该只在横向模式下运行)我得到:

由于未捕获的异常'UIApplicationInvalidInterfaceOrientation'而终止应用程序,原因:'支持的方向与应用程序没有共同的方向,并且shouldAutorotate返回YES'

如果我为ipad/iphone启用了肖像(和/或注释掉了supportedInterfaceOrientationsForWindow :),它可以正常工作而不会崩溃,但我不希望启用纵向模式.

landscape orientation ios game-center ios6

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

iCloud NSUbiquitousKeyValueStore初始同步/访问延迟 - 如何处理?

我正在使用NSUbiquitousKeyValueStore来存储一些应用程序设置.我的逻辑是:当我在本地保存数据时,我还将其保存到NSUbiquitousKeyValueStore作为备份.当我需要设置时,我在本地阅读,如果没有在本地找到数据,我只使用iCloud键值存储(例如,在重新安装应用程序之后).如果用户有多个设备共享一个icloud id,他可以在一个设备上写设置并将其下载到另一个设备(我警告他重写).

我有一个奇怪的问题.脚步:

  1. 安装应用程序并将其数据保存到NSUbiquitousKeyValueStore.确保数据存在.
  2. 删除了应用程序(假设数据仍然存在于iCloud中).
  3. 等待几分钟以防万一,然后安装并从Xcode内部启动应用程序.
  4. 尝试使用[[NSUbiquitousKeyValueStore defaultStore] dataForKey:@"mykeyname"读取设置键 - 有时它没问题,但有时候找不到密钥!
  5. 等了15秒,又试了一次.成功.困惑.

因此,似乎ios需要一些时间来为我的应用程序提供远程键值存储,以便在dataForKey:call中进行本地访问.如果我写了这样一个系统(实际上我做过 - 前一段时间,在另一个生命中),在询问和接收键值数据之前显然必须有一个延迟.所以我想要一些通知说:"我们在第一次启动时完成了下载/同步键值存储"或类似的东西.

据我所知,我可以同步在主线程中使用NSUbiquitousKeyValueStore(这对我来说很方便).但是[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]返回一个有效的url,然后我得到"key not found".所以我不能依赖它.有没有办法确保下载NSUbiquitousKeyValueStore的工作原理?这一点非常重要,特别是在网速较慢时.

UPDATE

添加[[NSUbiquitousKeyValueStore defaultStore] synchronize](如在apple docs中所写)到init和load有点帮助.iCloud还有很多问题.

昨天我已成功将数据保存到手机1上的键值存储区并在手机2上恢复.今天我已删除手机2上的应用程序并尝试恢复数据.但即使[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]返回有效的URL我调用[[NSUbiquitousKeyValueStore defaultStore] synchronize]我在调用dataForKey:MY_DATA_KEY时得到nil.

当我尝试从手机1上的icloud恢复数据(应用程序仍然安装)时,它成功,但是当我在此手机上重新安装时,应用程序恢复不再成功.

临时解决方案是:"关闭iCloud->文档和数据 - 关闭和打开网络 - 打开文档和数据",但是你应该等几分钟,然后它应该工作.

所以,问题:1.你对iCloud有这样的问题吗?2.有没有办法找出数据不可用或尚未下载?3. iCloud有任何已知的"延迟"吗?我听说大约7秒钟,但显然不是这样.4.似乎当应用程序没有未加载时,iCloud数据的更新速度非常快(秒),但是当您重新安装应用程序时,icloud需要几分钟才能实现键值存储.有没有办法强迫这个过程?


PS 下面是我的CloudHelper供你参考 - 非常简单的c ++类,用于向/从iCloud键值存储写入/读取二进制数据.这是不可编译的,我已经适应它,以便更清楚 - 删除我的引擎相关的代码.如果你删除MySystem :: ...调用它仍然很好.除了我之前提到的.

class CloudHelper
{
public:
    static bool init();
    static void deInit();
    //save our data to iCloud with
    static int saveData(unsigned char* data, int from, int count);
    //get our data from iCloud
    static unsigned char …
Run Code Online (Sandbox Code Playgroud)

iphone ios icloud-api nsubiquitouskeyvaluestore

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

Google Play游戏服务:奇怪的登录行为

最近我在我的应用程序中添加了Google Play游戏服务支持(添加了BaseGameActivity和GameHelper),并且登录和注销工作流程运行良好.在我的图形线程中,我向主活动处理程序发送消息,它调用beginUserInitiatedSignIn或signOut.当识别过程完成时,Game Helper调用onSignInFailed或onSignInSucceeded我的活动,我可以检查isSignedIn(如果调用了onSignInSucceeded,则为true).

但今天我发现它现在表现得很奇怪.可悲的是,我没有备份最后一个工作版本,但是essense代码是相同的.

如果我要求应用程序登录,则显示谷歌服务登录对话框(我的设备上有2个帐户).我选择一个帐户,按确定,它返回到我的应用程序但是既没有调用onSignInSucceeded也没有调用onSignInFailed(之前如果我取消了这个对话框,我看到了"未知错误"消息).当我第二次尝试登录时,它会启动一个旋转的圆圈并无休止地等待.如果我点击屏幕就会中止等待并返回我的视野.

但是,如果我关闭应用程序并再次启动它,它会在启动成功时登录,调用onSignSucceded并在我检查运行时保持连接状态.它说:

onCreate: creating GamesClient
onStart.
onStart: connecting clients.
Connecting GamesClient.
onConnected: connected! client=1
All clients now connected. Sign-in successful.
All requested clients connected. Sign-in succeeded!
Run Code Online (Sandbox Code Playgroud)

如果我退出然后再次尝试登录,则会显示帐户对话框并写入:

isGooglePlayServicesAvailable returned 0
beginUserInitiatedSignIn: starting new sign-in flow.
Connecting GamesClient.
onConnectionFailed: result 4
onConnectionFailed: since user initiated sign-in, trying to resolve problem.
resolveConnectionResult: trying to resolve result: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{41f8a610: android.os.BinderProxy@41f8a5b0}}
result has resolution. Starting it.
Run Code Online (Sandbox Code Playgroud)

当我选择一个帐户时,它返回到我的活动,并且既不调用onSignInSucceeded也不调用onSignInFailed.如果我在运行时检查,我发现该应用未连接到谷歌服务.当我再次尝试登录时,它会显示永久旋转的圆圈并说:

isGooglePlayServicesAvailable returned 0
beginUserInitiatedSignIn: continuing pending sign-in flow.
resolveConnectionResult: trying to resolve result: …
Run Code Online (Sandbox Code Playgroud)

java android google-play-services

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

如何将(已购买的)Android应用程序作为礼物赠送给客户?

是的,所以,我知道,这不是"程序员"的问题:)但客户有时会帮助我们(开发者)使用我们的代码,所以我们(开发者)应该感激不尽.我认为回答我的问题对所有Android开发者都很有用.

用户购买了我的应用.退款期(15分钟)当然结束了.现在我想把钱还给他作为礼物,因为他帮我测试了一点.

如果我在Checkout中退还整个订单 - >订单将用户保持我的应用程序'已购买'?我的意思是他能够从GooglePlay-> MyApps再次卸载并安装它,并将app标记为"已购买"?谷歌LVL会接受他运行该应用程序吗?

我以前做过这样的退款,但后来他们称之为"Android Market",退款时间是12小时,而且没有LVL.也许有人知道使用Google Play制作小礼物的另一种方式?

android google-checkout android-lvl google-play

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

NDK:如何构建一个lib,以便app可以在arm,s86,x86等上运行?

我之前从未使用过c ++ for android和NDK.当我使用它 - 比如说 - 图像处理时,我想确保应用程序可以在Android 2.2及更高版本的所有设备上运行.

当我为iPhone编写代码时,xcode为arm7和arm7s架构编译了2个二进制文件,并将它们打包到同一个包中.

现在我已经编写了一个示例NDK应用程序,它不想在我的Nexus 7上运行良好的x86 android模拟器上运行.我认为很明显应该是让它在arm和x86上运行的方式,但仍然可以找不到它.有人知道吗?谢谢!

java-native-interface android arm android-ndk android-x86

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

如何获取Google USER ID(不是设备ID)?

有几种方法可以识别设备 - IMEI/IMSI/ESN,GoogleID,您自己的加密GUID,保存在私人商店等等.但是,只要人们每3-6个月切换一次设备,重要的是不要识别设备而是确切地说是用户.

我们知道Google使用唯一ID来识别允许在Google Play上购买的用户(电子邮件)等.此外,我们知道谷歌拒绝开发者访问此ID,保存并用于垃圾邮件等.实际上,现在我们可以使用客户经理来获取它,至少其中一个.至少我不知道如何区分哪个帐户处于活动状态并用于购买我的应用程序.

在Widows Phone中,我看到了一个明智的方法:系统为开发人员提供了一些来自用户帐户ID /电子邮件的哈希值.除了识别您的用户之外,您无法对其执行任何操作.正是我想要做的!即使有人会窃取这个身份证,他也不能将其用作电子邮件或其他任何东西.

所以我搜索类似的东西.我仍然没有找到关于如何安全地识别用户的明确信息.有很多帖子,很多意见,但仍然没有明确和可理解的方式.

到目前为止,在IAP安全方案中,我想到在设备上获取所有谷歌帐户并记住我或谷歌服务器上的双md5用于特定购买/订单_no.稍后,当我的应用程序的任何实例将请求此购买时,发送其所有者google-id的双md5,服务器将比较它记住此特定购买/ order_no的至少一个帐户是否等于该ID,然后将回复得当.

但也许有更明确的方案?

android user-identification userid in-app-purchase android-lvl

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

如何在 IOS 应用程序中除以零时启用 SIGFPE 信号?

我在 Xcode 4.5(llvm 4.1 编译器)中为 ios 5/6 开发了一个应用程序,并使用信号和异常处理程序来记录错误。但是我发现除以零永远不会引发 SIGFPE 信号。在linux系统上,我可以使用feenableexcept来设置陷阱。但这在ios中没有定义。

将适当的位设置为 fenv_t.__fpscr 不起作用,至少对于 iphone 4 和 3gs。

xcode exception-handling divide-by-zero ios

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

mysql - 包含100K-1M行的500个表或包含50-500M行的1个表

我读了很多类似的帖子,但我不明白该选择什么.从软件角度来看,它是游戏排行榜.所有排行榜或500张小桌子的一张桌子,每个游戏级别一张?

我测试了两种变体,并发现:

  • 1个大表工作得更慢(创建了所有需要的索引).

  • 应将1个大表分区为至少10个文件,以获得足够的速度.

  • 500张小桌子不是那么方便,但速度快了两倍(50M大桌子和100K小桌子)

  • 500个小表不需要分区(我在mysql中听说过它的一些问题,也许在MariaDB 10.0中,我使用的一切都是固定的,但以防万一)

这里唯一的问题是可能会同时打开很多表.在phpMyAdmin中读取设置建议之前,我没有认为这是一个问题,所以现在我怀疑我应该使用那么多表吗?

以防这里的模式."小桌子:

CREATE TABLE IF NOT EXISTS `level0` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT '0',
  `score` int(11) NOT NULL,
  `timestamp` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `user_id` (`user_id`),
  KEY `score` (`score`),
  KEY `timestamp` (`timestamp`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 

CREATE TABLE IF NOT EXISTS `leaderboard` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT '0',
  `level_no` int(11) NOT NULL,
  `score` int(11) NOT NULL,
  `timestamp` int(11) NOT NULL,
  PRIMARY KEY …
Run Code Online (Sandbox Code Playgroud)

mysql performance mariadb

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