小编Dan*_*sko的帖子

切换无法从原生应用程序到网站

我的设备:

  • iPad Mini(最新),iOS 8 dp5.
  • Macbook Air,Yosemite dp5.

我有两个上述设备之间的Handoff工作.Safari,邮件,消息,日历等所有切换都没有问题.

我甚至可以在Air上的网站和iPad上的原生应用之间切换.

我还不能做的是从我在iPad上的原生应用程序到我的Air上的Safari网站.

对于在我的原生应用程序中加载的第一个视图控制器,我有:

- (void)viewDidLoad

{
    [super viewDidLoad];

    NSUserActivity *webHandoff = [[NSUserActivity alloc] initWithActivityType:@"com.myApp.iphone.staging.webbrowsing"];

    webHandoff.webpageURL = [NSURL URLWithString:@"http://staging.myApp.com"];

    [webHandoff becomeCurrent];
}
Run Code Online (Sandbox Code Playgroud)

在我的应用程序的Info.plist文件中,我有:

<key>NSUserActivityTypes</key>
<array>
      <string>com.myApp.iphone.staging.webbrowsing</string>
</array>
Run Code Online (Sandbox Code Playgroud)

我错过了什么或者我的配置错误吗?

谢谢你的帮助!

ios8 handoff continuity nsuseractivity

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

自动版式:如何压缩复杂的弹出框

如果您想尝试源代码(非常欢迎这样做),请查看我的Bitbucket存储库

我有一个弹出对话框,显示设置列表。这些设置在多个UITableViews中列出。UITableViews不可滚动,因为整体设置视图已经可以滚动了。此外,弹出对话框在垂直方向上应占据所需的屏幕数量,但应水平压缩。

因此,我构思了以下结构:

UIView => MySettingsViewController
- UIScrollView
  - UIView (Content View)
    - Container View1
      - UITableView (embedded) => MyTableViewController
    - Container View2
      - UITableView (embedded)
Run Code Online (Sandbox Code Playgroud)

通过Interface Builder组装结构,并使用Autolayout进行尺寸调整。

我同时拥有“滚动视图”,“内容视图”(我只是从一个开始)和“容器视图”到各自的超级视图(或布局指南)。我通过以下方式限制了内容视图的大小:

contentView.width == (topmost) UIView.width
contentView.height == 200 // removed at build time
Run Code Online (Sandbox Code Playgroud)

另外,我将表视图的大小设置为其内容大小,因为否则弹出窗口似乎为空:

UIView => MySettingsViewController
- UIScrollView
  - UIView (Content View)
    - Container View1
      - UITableView (embedded) => MyTableViewController
    - Container View2
      - UITableView (embedded)
Run Code Online (Sandbox Code Playgroud)

设置弹出窗口充满了内容,但是其大小并不完全正确:

在此处输入图片说明

为了解决这个问题,我尝试了以下无效的方法:

contentView.width == (topmost) UIView.width
contentView.height == 200 // removed …
Run Code Online (Sandbox Code Playgroud)

uitableview uiscrollview uipopovercontroller container-view uicontainerview

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

获取 HTTP 请求的 iOS 设备默认系统用户代理

我正在与一个 API 进行通信,该 API 要求我使用特定的用户代理字符串。其格式基本上是User-Agent: IOS_USER_AGENT API_CUSTOM_AGENT

经过调查,我发现人们会使用UIWebView并应用 JavaScript 函数来提取系统用户代理字符串。现在它UIWebView已被弃用,它的替代品WKWebView提供了一种计算用户代理的异步方法(对我的目的来说并不理想)。

有没有办法提取某种形式的 iOS 用户代理字符串,而不需要随机创建一些离屏 Web 视图。特别是SFSafariViewController我认为这些网络视图将来被弃用并不是完全不可能的。

我知道像 WhatsApp 和 Facebook 这样的应用程序使用用户代理系统,请参阅此处。问题是,在不涉及网络视图欺骗的情况下实现这一目标的最可靠方法是什么?

uiwebview ios wkwebview

5
推荐指数
0
解决办法
822
查看次数

在CUDA中的类之间传递指向设备内存的指针

我将不胜感激一些涉及CUDA设备内存指针的帮助.基本上我想将我的CUDA内核代码拆分成多个文件以便于阅读,因为它是一个大型程序.所以我想要做的是能够将相同的设备内存指针传递给多个CUDA内核,而不是同时.下面是我需要的一个粗略的例子

//random.h
class random{
public:
    int* dev_pointer_numbers;
};
Run Code Online (Sandbox Code Playgroud)

所以对象只需要将指针存储到设备内存中

//random_kernel.cu
__global__ void doSomething(int *values){
//do some processing}

extern "C" init_memory(int *devPtr,int *host_memory,int arraysize)
{
    cudaMalloc(&devPtr,arraysize*sizeof(int));
    cudaMemcpy(devPtr,host_memory,arraysize*sizeof(int),cudaMemcpyHostToDevice);
}

extern "C" runKernel(int *devPtr){
    doSomething<<<1,1>>>(devPtr);
}
Run Code Online (Sandbox Code Playgroud)

和主文件:

//main.cpp
//ignoring all the details etc
random rnd;
void CUDA(int *hostArray)
{
    init_memory(rnd.dev_pointer_numbers,hostArray,10);
    runKernel(rnd.dev_pointer_numbers);
}
Run Code Online (Sandbox Code Playgroud)

我知道当我使用对象指针运行内核代码时,它不会映射到设备内存中,这就是内核代码失败的原因.我想知道的是如何将指针存储到主文件中设备内存中特定块的指针,以便可以在其他cuda内核文件中重用?

pointers cuda

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

Swift Optionals - 不同的展开方式

我会正确的:

有什么区别:

var test: String?
test = "this is an optional string"

if test != nil {
    println("\(test!) IS NOT nil")
} else {
    println("test is nil")
}
Run Code Online (Sandbox Code Playgroud)

if let test = test {
    println("\(test) IS NOT nil")
} else {
    println("test is nil")
}
Run Code Online (Sandbox Code Playgroud)

两者都在操场上输出相同的结果.

我知道隐式解包不被认为是安全的(在大多数情况下),但是,我在这里检查在打开之前值是否为零?

两种方法都是有效的,并且有不同的情况,其中一种被认为是更好的选择吗?

optional ios swift forced-unwrapping

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

在两个NSOperations之间传递数据

我非常关注WWDC 2015关于高级NSOperations的会议,我对示例代码进行了一些介绍.

提供的抽象真的很棒,但有些东西我可能并不太了解.

我想在不使用MOC的情况下在两个后续的Operation子类之间传递结果数据.

想象一下,我有一个APIQueryOperation具有NSData?属性和第二操作ParseJSONOperation费时此属性.我如何为NSData?第二次操作提供这种意图?

我试过这样的事情:

queryOperation = APIQueryOperation(request: registerAPICall)  
parseOperation = ParseJSONOperation(data: queryOperation.responseData)  
parseOperation.addDependency(queryOperation) 
Run Code Online (Sandbox Code Playgroud)

但是当我输入实例的execute方法时ParseJSONOperation,与初始化器中的方法不同.

我做错了什么 ?

nsoperation swift

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

如何在swift的App的mainBundle中将数组保存到.plist

如何使用数组类型将数组保存到.plist?

我试试这个,但是没有用

    let path = NSBundle.mainBundle().pathForResource("Setting", ofType: "plist")
    let arrayWithProperties = NSArray(array: [
        NSNumber(integer: nowThemeSelected),
        NSNumber(integer: imageForBackgroundNumber),
        NSNumber(integer: imageForButtonNumber),
        NSNumber(integer: colorOfButton)])


    arrayWithProperties.writeToFile(path!, atomically: true)
Run Code Online (Sandbox Code Playgroud)

arrays plist ios swift

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