通常,OS X上的应用程序包只能启动一次,但是通过简单地复制捆绑包,可以启动两次相同的应用程序.检测和阻止这种可能性的最佳策略是什么?
在Windows上,这种效果可以通过应用程序在启动时创建命名资源,然后在无法创建命名资源时退出,表明正在运行已创建相同资源的另一个进程来实现.当应用程序退出时,这些资源在Windows上以可靠的方式发布.
我在研究这个问题时遇到的问题是OS X上的API会在文件系统中保持状态,从而使得在Windows上使用的策略不可靠,即在不正确的退出后延迟文件可能会错误地指示应用程序已在运行.
我可以用来在OS X上实现相同效果的API是:posix,carbon和boost.
想法?
我正在尝试将来自stdin的1和0的传入sting转换为它们各自的二进制值(其中诸如"11110111"的字符串将被转换为0xF7).这看起来非常简单,但我不想重新发明轮子,所以我想知道C/C++标准库中是否有任何可以执行此类操作的内容?
我正在考虑购买iPod touch来为iPhone开发应用程序赚钱.我喜欢App Store的概念,并用iTunes快速浏览一下.看起来应用程序被分类为iPhone或iPod应用程序.一些免费的iPod应用程序似乎是iPhone用户的成本.
这两个平台有什么区别,或者为什么App Store将它们分开?使用iPod touch(在电话/位置相关的应用程序旁边)为iPhone开发是否有意义?
在developer.apple.com上,我可以注册在AppStore上以99美元的价格出售我的应用程序.我不得不指望任何进一步的费用吗?从美国以外的国家(在我的情况下是德国)发展是一个问题吗?
Rails内置的CSRF预防对我们正在进行的一些自动负载测试造成了一些问题,我希望在整个过程中将其关闭.我该怎么做呢?
如果黑客可以访问我的数据库中的哈希值,那么无论如何他都可以访问数据库中的其余信息.那么为什么他会费心去解密密码呢?我应该将密码存储在不同的服务器上以保存我的其他数据吗?这是我可以设想它有用的唯一场景.
在我的Post.rb模型中,我有 default_scope :conditions => {:deleted => 'false'}
但如果我试图跑Post.find(:all, :conditions => "deleted='false'"),它将不会返回任何东西.就像default_scope优先于所有内容一样.
我想要它,以便当我这样做Post.find()时不会返回已删除的帖子,但我也希望能够在需要时访问它们.在我的查询或我的Rails模型中需要更改什么?
谢谢.
有人可以指导我一个关于如何在我的iOS应用程序上实现垂直滚动视图的教程吗?
我无法相信最近两天,我在一个垂直滚动视图上找不到一个单独的工作示例.所有教程都是关于水平滚动,缩放等.
我正在寻找的东西就像这个教程http://www.edumobile.org/iphone/iphone-programming-tutorials/scrollview-example-in-iphone-2/,它展示了如何制作uiscrollView并添加对象它来自Builder,而不是以编程方式.我发现的唯一缺陷是,当试图在滚动区域中添加地图时,地图会出现,而不是在我放置它的位置.也许有任何想法呢?
有什么想法吗?
LinkedIn对使用其API的应用程序非常谨慎.我尝试过但未能访问它们.
有人真的用它们构建了任何真正的应用程序吗?如果是,您采用了哪种策略来访问其API?
BTW我在谈论LinkedIn之上的一流增值应用程序,而不仅仅是嵌入超链接.
我正在开发一个iOS应用程序,我们希望保留应用程序的状态.
在此应用程序发布之前,iOS 7很可能已经发布或即将发布,而且大多数似乎已经从iOS 5发布.因此,我们决定开发iOS 6.
在iOS 6中,有一些非常好的功能可以保存状态.只需在storyboard中提供所有视图的唯一ID,并在"AppDelegate"中实现这两个功能:
- (BOOL)application:(UIApplication*)application shouldSaveApplicationState:(NSCoder*)coder;
- (BOOL)application:(UIApplication*)application shouldRestoreApplicationState:(NSCoder*)coder;
Run Code Online (Sandbox Code Playgroud)
然后,iOS将"自动"保留应用程序的导航历史记录.方法:
- (void)encodeRestorableStateWithCoder:(NSCoder*)coder;
- (void)decodeRestorableStateWithCoder:(NSCoder*)coder;
Run Code Online (Sandbox Code Playgroud)
然后可以用于存储和检索数据.
它没有问题,没有问题.但是,只有在应用程序进入后台时才会触发保存状态的方法.
假设我们有一个带有四个ViewControllers的NavigationController:A,B,C和D.用户从A导航到B,在B中他切换到Safari来google.应用程序状态保存在B.然后用户切换回应用程序并导航到C然后导航到D.在D中,应用程序不幸遇到异常并且关闭.当用户重新启动应用程序时,iOS将尝试恢复已保存的状态.然而,这个状态保存在B中.这意味着当应用程序启动时,它不会从头开始,而不是用户离开它的地方(D),甚至不是前一个视图(C),而是在B.
如果应用程序在每个新视图中保存其状态,则可以避免上述情况.但是,据我所知,没有任何公共方法可以触发状态保存过程.我在调试时检查了调用堆栈,发现iOS在iOS 6中的UIApplication对象上调用了以下方法:
_saveApplicationPreservationState:
Run Code Online (Sandbox Code Playgroud)
以及iOS 7中的以下方法:
_saveApplicationPreservationState:viewController:sessionIdentifier:beginHandler:completionHandler:
Run Code Online (Sandbox Code Playgroud)
似乎还有另一种方法根据iOS版本调用上述方法之一:
_saveApplicationPreservationStateIfSupported
Run Code Online (Sandbox Code Playgroud)
通过调用此方法,如下所示:
if ([[UIApplication sharedApplication] respondsToSelector:@selector(_saveApplicationPreservationStateIfSupported)])
[[UIApplication sharedApplication] performSelector:@selector(_saveApplicationPreservationStateIfSupported)];
Run Code Online (Sandbox Code Playgroud)
我可以看到调用了预期的方法.
如果我使用上述解决方案可以让我的应用程序被拒绝从App Store?我的意思是技术上它不是一种私人方法,它只是没有暴露.通过将调用包装在"respondsToSelector"中,如果API被更改,应用程序将不会崩溃,它只是不会经常保存状态.但如果它可以让应用程序被拒绝,那么这不是一个选择.或者除了上面描述的那个之外还有其他任何手动调用状态保存过程的方法吗?我很高兴能够使用内置功能,而不是构建一个保存状态的自定义解决方案NSUserDefaults.
ios ×2
security ×2
api ×1
app-store ×1
binary ×1
boost ×1
c ×1
c++ ×1
csrf ×1
encryption ×1
frameworks ×1
iphone ×1
ipod ×1
launch ×1
linkedin ×1
macos ×1
macos-carbon ×1
models ×1
objective-c ×1
resources ×1
uiscrollview ×1