我在我的应用程序中分享时遇到问题,想知道我是否做错了什么,或者这是否可能是 iOS8 中的错误。
在我的应用程序中,我可以共享文件,如果共享类型支持附件,它会附加文件(例如电子邮件),否则它会共享一个包含文件链接的字符串。
在创建共享事件时,我做了这样的事情(我大大简化了我自己的实现,但这是一个例子):
-(void)showShareButtons:(BOOL)animated
{
NSString *textToShare = @"Foobar!";
NSURL *myWebsite = [NSURL URLWithString:@"http://www.stackoverflow.com/"];
NSString *localPath = [NSTemporaryDirectory() stringByAppendingPathComponent:"temp.foo"];
NSURL *localFile = [NSURL fileURLWithPath:localPath];
NSArray *objectsToShare = @[textToShare, myWebsite, localFile];
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil];
NSArray *excludeActivities = nil;
activityVC.excludedActivityTypes = excludeActivities;
[m_viewController presentViewController:activityVC animated:YES completion:nil];
}
在 iOS7 上,我收到用于共享的选项“消息、邮件、Twitter 和 Facebook”,这正是我所期望的。
-对于邮件和消息,它使用字符串、URL 和本地文件
-对于 Twitter 和 Facebook,它只有字符串和 URL,其中 URL 显示为正确的链接(未在消息中显示)
在 iOS8 上,我只收到消息和邮件选项,两者与在 iOS7 中相同。
它现在似乎将其限制为支持所有项目的共享选项,而之前它会列出支持任何项目的项目。
构建信息:
两者都在xCode6 Beta中构建,部署目标目前设置为iOS7.0
iPhone 5(MD295C/A) 上的 iOS 8.0(12A4345d),4S (MD241C/A) 上的 7.1.2 (11D257)
编辑:此外,如果我只设置一个选项,例如字符串,则所有选项都可用。所以我可以在两者上共享这些(即,它们已启用)
最佳答案
实际上它应该是另一种方式,在 iOs8 中 UIActivity 将列出设备上安装的所有共享站点。例如:Facebook、twitter、Vimeo 等,基于您为 initWithActivityItems: 方法发送的文件类型。
但在 iOs7 中只有邮件、消息等会在 UIActivity 中列出,其中 Facebook、Twitter、Vimeo 只有在您登录设备设置后才会列出。
关于ios - 与 UIActivityViewController initWithActivityItems 共享在 iOS7 和 iOS8 上产生不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25732988/
我正在编写一个gem,我必须在其中fork两个启动两个webrick服务器的进程。我想通过基类的类方法启动这个服务器,因为应该只有这两个服务器在运行,而不是多个。在运行时,我想调用这两个服务器上的一些方法来更改变量。我的问题是,我无法通过基类的类方法访问fork的实例变量。此外,我不能在我的基类中使用线程,因为在幕后我正在使用另一个不是线程安全的库。所以我必须将每个服务器派生到它自己的进程。我用类变量试过了,比如@@server。但是当我试图通过基类访问这个变量时,它是nil。我读到在Ruby中不可能在分支之间共享类变量,对吗?那么,还有其他解决办法吗?我考虑过使用单例,但我不确定这是
这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下
我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
我基本上来自Java背景并且努力理解Ruby中的模运算。(5%3)(-5%3)(5%-3)(-5%-3)Java中的上述操作产生,2个-22个-2但在Ruby中,相同的表达式会产生21个-1-2.Ruby在逻辑上有多擅长这个?模块操作在Ruby中是如何实现的?如果将同一个操作定义为一个web服务,两个服务如何匹配逻辑。 最佳答案 在Java中,模运算的结果与被除数的符号相同。在Ruby中,它与除数的符号相同。remainder()在Ruby中与被除数的符号相同。您可能还想引用modulooperation.
RSpec似乎按顺序匹配方法接收的消息。我不确定如何使以下代码工作:allow(a).toreceive(:f)expect(a).toreceive(:f).with(2)a.f(1)a.f(2)a.f(3)我问的原因是a.f的一些调用是由我的代码的上层控制的,所以我不能对这些方法调用添加期望。 最佳答案 RSpecspy是测试这种情况的一种方式。要监视一个方法,用allowstub,除了方法名称之外没有任何约束,调用该方法,然后expect确切的方法调用。例如:allow(a).toreceive(:f)a.f(2)a.f(1)
print"Enteryourpassword:"pass=STDIN.noecho(&:gets)puts"Yourpasswordis#{pass}!"输出:Enteryourpassword:input.rb:2:in`':undefinedmethod`noecho'for#>(NoMethodError) 最佳答案 一开始require'io/console'后来的Ruby1.9.3 关于ruby-为什么不能使用类IO的实例方法noecho?,我们在StackOverflow上
A/ctohttp://wiki.nginx.org/CoreModule#usermaster进程曾经以root用户运行,是否可以以不同的用户运行nginxmaster进程? 最佳答案 只需以非root身份运行init脚本(即/etc/init.d/nginxstart),就可以用不同的用户运行nginxmaster进程。如果这真的是你想要做的,你将需要确保日志和pid目录(通常是/var/log/nginx&/var/run/nginx.pid)对该用户是可写的,并且您所有的listen调用都是针对大于1024的端口(因为绑定(
在许多ruby类之间共享记录器实例的最佳(正确)方法是什么?现在我只是将记录器创建为全局$logger=Logger.new变量,但我觉得有更好的方法可以在不使用全局变量的情况下执行此操作。如果我有以下内容:moduleFooclassAclassBclassC...classZend在所有类之间共享记录器实例的最佳方式是什么?我是以某种方式在Foo模块中声明/创建记录器还是只是使用全局$logger没问题? 最佳答案 在模块中添加常量:moduleFooLogger=Logger.newclassAclassBclassC..
有没有办法在sinatra的beforedoblock中停止执行并返回不同的值?beforedo#codeishere#Iwouldliketo'return"Message"'#Iwouldlike"/home"tonotgetcalled.end//restofthecodeget'/home'doend 最佳答案 beforedohalt401,{'Content-Type'=>'text/plain'},'Message!'end如果你愿意,你可以只指定状态,这里有状态、标题和正文的例子