小编Oli*_*ain的帖子

UIDevice uniqueIdentifier已弃用 - 现在该怎么办?

刚刚看到UIDevice uniqueIdentifier属性iOS 5中已弃用,在iOS 7及更高版本中不可用.似乎没有替代方法或财产可用或即将出现.

我们的许多现有应用程序都严格依赖此属性来唯一标识特定设备.我们如何处理这个问题呢?

2011 - 2012文件中的建议是:

特别注意事项

不要使用uniqueIdentifier属性.要创建特定于应用程序的唯一标识符,可以调用该CFUUIDCreate函数创建一个UUID,并使用NSUserDefaults该类将其写入默认数据库.

但是,如果用户卸载并重新安装应用程序,则此值将不同.

deprecated uidevice ios

498
推荐指数
12
解决办法
16万
查看次数

使用jQuery $ .ajax()时如何使用GET在请求体中发送数据

我正在使用的服务API具有给定的GET方法,该方法要求在请求的主体中发送数据.

正文中所需的数据是由hypen分隔的id列表,可能非常大,因此必须在正文中发送,否则它可能会在浏览器/代理/ web服务器等链中的某处发生.注意我无法控制服务或API,因此请不要提出更改建议.

我正在使用以下jQuery代码但是在fiddler中观察请求/响应我可以看到我发送的"数据"总是被转换并附加到查询字符串,尽管我将"processData"选项设置为false ...

$.ajax({
   url: "htttp://api.com/entity/list($body)",
   type: "GET",
   data: "id1-id2-id3",
   contentType: "text/plain",
   dataType: "json",
   processData: false, // avoid the data being parsed to query string params
   success: onSuccess,
   error: onError
});
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何强制在请求正文中发送"数据"值?任何帮助表示赞赏,提前谢谢.

javascript ajax jquery

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

iOS6 - 如何清除主屏幕/独立Web应用程序的缓存?

看起来Apple已经改变了主屏幕/独立网络应用在iOS 6中的工作方式.根据各种博客文章(示例),这些应用现在可以获得自己的专用空间来存储缓存文件,sqllite dbs,本地存储等,而不是像以前一样与Safari浏览器共享.

在iOS 6开发之前,我曾经虔诚地通过以下程序来清除缓存......

  1. 从主屏幕删除应用程序.
  2. 关闭Safari中的所有页面/选项卡.
  3. 最后在"设置">"Safari"中"清除Cookie和数据"或"清除数据".

不幸的是,现在Apple已经移动了目标帖子,这个程序似乎不起作用.清除之后,即使我的更改在Safari中被选中,当我添加到主屏幕并启动应用程序时,旧的HTML,JS等仍然被选中.

有谁知道如何可靠地完全清除iOS 6中的缓存?

html5 web-applications ios

24
推荐指数
3
解决办法
9603
查看次数

NSDate Min和Max可能的值

任何人都知道NSDate的最小和最大可能值是多少?

cocoa objective-c nsdate

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

Interface Builder不断重置自定义UITableViewCell的宽度

我正在使用Interface Builder 为iPad应用程序设计自定义UITableViewCell .

我有一个专用的XIB文件,它有一个UITableViewCell作为其根视图.我能够将UITableViewCell的宽度更改为1024(在XCode的右侧属性窗格中的"大小"检查器中),并且此操作会暂时调整画布上的单元格大小.

但是,如果之后我尝试移动/调整UITableViewCell中的某些项目或关闭并重新打开XIB,XCode决定将UITableViewCell的宽度重置为320(iPhone特定宽度).

然后,画布上的单元格会遮挡单元格中的项目,并且除非我再次调整单元格大小,否则无法设计单元格.一旦你绕过这个循环几次就会变得相当烦人.

任何人都知道如何设置宽度以使其永久或者如何指定UITableViewCell是否特定于iPad?


要重新创造......

  • 文件>新建>文件...
  • UserInterface> Empty
  • 设备系列== iPad

  • 将新的UITableViewCell拖到画布上(尽管先前选择了iPad,但创建宽度为320)

  • 将UITableViewCell的宽度调整为1024(到目前为止一切都很好)
  • 将UILabel拖放到UITableViewCell的左侧(仍然很好)
  • 通过拖动角落以任何方式调整UILabel的大小(不要使用属性检查器) - 并且... UITableViewCell的大小重置回320

编辑:

我刚刚收到苹果公司对我很久以前创建的雷达车票的以下回应......

你好奥利弗,

这是关于Bug ID#13222753的后续行动.

工程部门已要求提供以下信息,以便进一步调查此问题:

我们相信这个问题已在最新的Xcode 5.1 Seed中得到解决.

这是适用于Mac,iPhone和iPad的Xcode开发人员工具集的预发布版本.它包括Xcode IDE,iOS模拟器以及用于构建OS X和iOS应用程序的所有必需工具和框架.请使用此版本进行测试,并使用结果更新错误报告.

Xcode 5.1 Seed - Build 5B71f发布日期:2013年12月13日

我还试图在Xcode 5.0.2中重新创建问题,看起来它也与该版本一起修复了.

xcode objective-c interface-builder ipad

18
推荐指数
2
解决办法
6610
查看次数

Xcode 11 - “无法与辅助应用程序通信。” 尝试添加 Swift 包时

当我尝试向我的项目添加新的 Swift 包时遇到问题。

在 Xcode 11.3.1 上,我收到“无法与帮助应用程序通信”。错误信息。

PS 在 Xcode 11.4 中,错误消息已更改为“与服务的通信中断”。

在此处输入图片说明

崩溃报告

查看控制台应用程序后,我可以看到com.apple.dt.Xcode.sourcecontrol.Git发生了崩溃。我已经在这里上传了崩溃报告...

https://gist.github.com/OliverPearmain/0320f34d6381d1bb7900ff266fc8d703

xcode swift-package-manager

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

@available 属性不适用于 XCTest 类或方法

我希望单元测试仅在给定版本的 iOS 或更高版本上运行,但该@available属性似乎根本不适用于 XCTest 方法:-(

例如,我根本无法使用@available关键字的任何变体来禁用测试。无论@available是在类或函数、用途unavailable或任何东西上定义,测试始终执行。例如...

// Still runs on iOS
@available(iOS, unavailable)
class SomeTests: XCTestCase {
    func testSomething() {
        print("operatingSystemVersion=\(ProcessInfo.processInfo.operatingSystemVersion)")
        XCTFail()
    }
}
Run Code Online (Sandbox Code Playgroud)
// Still runs on iOS
class SomeTests: XCTestCase {
    @available(iOS, unavailable)
    func testSomething() {
        print("operatingSystemVersion=\(ProcessInfo.processInfo.operatingSystemVersion)")
        XCTFail()
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以使用下面的方法实现我想要的,但这对于很多测试来说并不实用,容易出错,在运行时确定,并且测试方法仍然执行并显示为成功(事实并非如此)。

class SomeTests: XCTestCase {
    func testSomething() {
        if #available(iOS 10.0, *) {
           print("operatingSystemVersion=\(ProcessInfo.processInfo.operatingSystemVersion)")
           XCTFail()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为预处理器宏没有#if os(...)帮助,因为它不能进行版本检查。

有没有其他方法可以实现我想要的?我做错了什么@available(或者这可能只是一个错误)?

ios xctest swift

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

如何在代码中设置ServiceHostingEnvironment.AspNetCompatibilityEnabled = true(不在配置中).NET/C#

我需要从RESTful WCF服务中使用来访问HttpContext.Current.我知道我可以通过在config中添加以下内容来实现这一目的:

<serviceHostingEnvironment aspNetCompatibilityEnabled=”true” />
Run Code Online (Sandbox Code Playgroud)

并在我的服务上使用以下属性:

[AspNetCompatibilityRequirements(RequirementsMode 
    = AspNetCompatibilityRequirementsMode.Required)]
Run Code Online (Sandbox Code Playgroud)

这是我的问题,我需要在代码中"旋转"一个服务实例进行单元测试,因此我不能使用配置文件来指定服务bebaviours等.目前我的代码看起来如下,但尽管在网上搜索我我一直无法弄清楚如何设置ServiceHostingEnvironment类并在不使用配置的情况下将AspNetCompatibilityEnabled属性设置为true,有人可以帮忙吗?

string serviceUrl = "http://localhost:8082/MyService.svc";

_host = new ServiceHost(typeof(MyService), new Uri[] { new Uri(serviceUrl) });

ServiceEndpoint serviceEndpoint 
    = _host.AddServiceEndpoint(typeof(IMyService), new WebHttpBinding(), string.Empty);

serviceEndpoint.Behaviors.Add(new WebHttpBehavior());

// Here's where I'm stuck, i need something like...
ServiceHostingEnvironmentSection shes = new ServiceHostingEnvironmentSection();
shes.AspNetCompatibilityEnabled = true;
_host.Add(shes);

_host.Open();
Run Code Online (Sandbox Code Playgroud)

任何帮助都非常感谢,并提前感谢.

.net c# rest wcf

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

编译关于缺少@required协议方法的警告未出现

今天早上我正在修补XCode 4.5.2,想要制作一个表格视图,我自然地将视频UITableViewDataSourceUITableViewDelegate协议添加到我的视图控制器定义中.

#import <UIKit/UIKit.h>

@interface MyViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>

@end

#import "MyViewController.h"

@implementation MyViewController

@end
Run Code Online (Sandbox Code Playgroud)

现在我知道在这个阶段我需要实现协议的@required方法UITableViewDataSource但是出于(可能是TDD)的习惯我决定首先执行构建,期望编译器会抛出关于未实现的@required方法的警告(指示给我哪些要实施).

但是没有编译完成没有编译器的单一错误或警告,这让我感到困惑和担忧.

所以我意识到这个问题通常是反过来的,即"为什么我得到这个警告",而不是"为什么我没有得到这个警告",但这个非常简单的问题让我很困惑.显然,我做错了什么,但我不知道是什么.任何想法如何可能?

仅供参考这是一个新项目,在全新的Mac Book上全新的XCode 4.5.2安装上没有构建/项目设置自定义.

compiler-construction xcode objective-c ios

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

VS Code 调试 launch.json - 在 `env` 中使用 `envFile` 值

在 VSCode 中调试一些 python 代码时,我希望开发人员能够创建一个简单的小代码envFile,看起来像......

AD_USR=username
AD_PSW=password
Run Code Online (Sandbox Code Playgroud)

因此这些值稍后可以替换为多个其他环境变量。

我尝试执行如下操作(请注意变量如何env尝试使用在 中设置的环境变量envFile)。

这是行不通的。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug My Program",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/venv/bin/thingtorun",
            "console": "integratedTerminal",
            "envFile": "${workspaceFolder}/bin/.envFile",
            "env": {
                "SYSTEM_A_USER": "${env.AD_USR}",
                "SYSTEM_A_PASSWORD": "${env.AD_PSW}",
                "SYSTEM_B_USER": "${env.AD_USR}",
                "SYSTEM_B_PASSWORD": "${env.AD_PSW}",
                ... + lots of other systems ...
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

有谁知道这样做的机制?

我的主要目标是避免新开发人员必须envFile为每个系统创建大量重复的用户名和密码。在产品中,用户名和密码会有所不同,因此我也无法消除对 SYSTEM_X_USER/PASSWORD 的需要。

environment-variables visual-studio-code

9
推荐指数
0
解决办法
2409
查看次数