我想查询iPhone当前的方向.使用
[UIDevice currentDevice].orientation
Run Code Online (Sandbox Code Playgroud)
只要设备没有方向锁定,就可以正常工作.但是,如果它被锁定,它始终以锁定方向响应,而不是以设备的实际方向响应.
是否有高级方法来获取实际的设备方向?
我正在寻找优化这种线性搜索:
static int
linear (const int *arr, int n, int key)
{
int i = 0;
while (i < n) {
if (arr [i] >= key)
break;
++i;
}
return i;
}
Run Code Online (Sandbox Code Playgroud)
数组已排序,函数应返回大于或等于键的第一个元素的索引.它们的数组不大(低于200个元素),并且会为大量搜索准备一次.如果需要,可以在第n个之后将数组元素初始化为适当的数组,如果这样可以加快搜索速度.
不,不允许二进制搜索,只能进行线性搜索.
我有一个字符串列表和一个过滤器列表(也是字符串,被解释为正则表达式).我想要一个列表,列出我的字符串列表中至少有一个过滤器接受的所有元素.理想情况下,我会写
[s for s in strings if some (lambda f: re.match (f, s), filters)]
Run Code Online (Sandbox Code Playgroud)
其中一些被定义为
def some (pred, list):
for x in list:
res = pred (x)
if res:
return res
return False
Run Code Online (Sandbox Code Playgroud)
有类似的东西已经在Python中可用,还是有更惯用的方法来做到这一点?
我将动画GIF附加到要与MFMailComposeViewController一起发送的电子邮件中.如果GIF的大小足够大,MFMailComposeViewController将询问用户是否要将其调整为较小的大小.不幸的是,动画将不会保留在已调整大小的图像中.
我如何禁止MFMailComposeViewController调整图像大小或使其保留动画?
cocoa-touch animated-gif ios4 ios mfmailcomposeviewcontroller
我正在尝试通过位于其他区域的CloudWatch警报通知SNS主题。原因是我想要SMS警报,而该警报在我的服务所在的地区不可用。如果输入订阅的ARN并将更改保存在控制台中,则会收到“保存警报时出错。请重试。” 重试无济于事。在本地区域使用主题确实有效,但这不是我所需要的。
有没有办法通知其他地区的主题?如果没有,还有其他简单的方法可以实现我的目标吗?
我无法从命令行使用jarjar将简单的Scala程序与scala运行时库结合起来.
jarjar正确检测依赖:
$ java -jar ~/Desktop/saug/jarjar-1.0.jar find jar BCT.jar scala-library.jar
/home/schani/Work/scala/bct/BCT.jar -> /home/schani/Work/scala/bct/scala-library.jar
Run Code Online (Sandbox Code Playgroud)
但是,将它们组合起来并不起作用:
$ CLASSPATH=./scala-library.jar java -jar ~/Desktop/saug/jarjar-1.0.jar process rules.jjl BCT.jar BCTS.jar
Run Code Online (Sandbox Code Playgroud)
我得到的jar文件仍然依赖于scala-library.jar.我是否添加CLASSPATH变量没有任何区别.我的rules.jjl文件如下所示:
keep BCT
Run Code Online (Sandbox Code Playgroud)
该怎么办?
旁白:这个问题的标题并不理想。我想做的事情可以通过计算类型来实现,也可以通过其他方式来实现。
我正在编写一些代码来验证,有时将动态类型的JSON数据转换为静态Python类型。以下是一些功能:
def from_str(x: Any) -> str:
assert isinstance(x, str)
return x
def from_int(x: Any) -> int:
assert isinstance(x, int)
return x
def from_list(f: Callable[[Any], T], x: Any) -> List[T]:
assert isinstance(x, list)
return [f(y) for y in x]
Run Code Online (Sandbox Code Playgroud)
这些工作很棒。我还希望能够将它们组合以转换联合类型。理想的是这样的:
union = from_union([from_str, from_int], json)
Run Code Online (Sandbox Code Playgroud)
问题是如何键入from_union
函数。我的第一种方法是:
def from_union(fs: Iterable[Callable[[Any], T]], x: Any) -> T:
for f in fs:
try:
return f(x)
except AssertionError:
pass
assert False
Run Code Online (Sandbox Code Playgroud)
从技术上讲这是正确的。如果我们替换Union[str,int]
为T
上述表达式键入正确的,因为from_str
,由于返回的str
也返回Union[str,int]
(类型的任何值str …
下面的代码显然输入错误,但我不能在上面犯 TypeScript 错误。我打开了strict
,strictNullChecks
并且strictFunctionTypes
很好地衡量了,但 TS 仍然坚定不移地相信这段代码很好而且很花哨。
abstract class A {
// You can pass an undefined to any A
public abstract foo(_x: number | undefined);
}
class B extends A {
// B is an A, but it prohibits passing in an undefined.
// Note that if we did `x: string`, TS would flag it as
// an error.
public foo(x: number) {
if (x === undefined) {
throw new Error("Type error!");
}
}
} …
Run Code Online (Sandbox Code Playgroud) 我需要分配具有大对齐的内存(兆字节)的大区域(也可能在兆字节范围内).VirtualAlloc系列函数似乎没有提供执行此操作的选项.
我在Linux上为实现这一点而做的是mmap一个更大的区域 - 足够大以保证在其中包含具有所需对齐的足够大的区域 - 然后在大区域的开始和结束处对区域进行munmap不需要.
举个例子,假设我需要4兆字节,在1兆字节的边界上对齐(即在最低的20位中具有零的区域的起点).我想要5兆字节.假设我得到区域0x44ff000-0x49ff000.在该区域内包含区域0x4500000-0x4900000,该区域在1兆字节边界上对齐.然后我将munmap 0x44ff000-0x4500000和0x4900000-0x49ff000.
我可以在Win32上做类似的事情吗?如果我将VirtualProtect与PAGE_NOACCESS一起使用,是否会释放内存?有更好的解决方案吗?
使用Swift 3 JSONSerialization
,如果您的数据模型的一部分是完全动态的,您可以随时保留反序列化数据,Any
并让消费者处理它.
有了Swift 4 Codable
,我想这样做:
struct Foo : Codable {
let bar: Any;
}
Run Code Online (Sandbox Code Playgroud)
但我明白了
JSONPlayground.playground:4:9: note: cannot automatically synthesize 'Decodable' because 'Any' does not conform to 'Decodable'
let bar: Any;
^
Run Code Online (Sandbox Code Playgroud)
如果我能够实现自己的那个,那就不会是世界末日Decodable
,但这需要Decoder
支持解码Any
,据我所知,它不会.例如:
extension Foo {
init(from decoder: Decoder) throws {
let container = try decoder.singleValueContainer()
let result = try container.decode(AnyClass.self)
}
}
Run Code Online (Sandbox Code Playgroud)
给
error: JSONPlayground.playground:4:36: error: cannot invoke 'decode' with an argument list of type '(AnyClass.Protocol)'
let result …
Run Code Online (Sandbox Code Playgroud) 我有一个Lambda函数处理由API网关触发的POST请求.后者设置为通过Cognito用户池授权程序进行授权.授权工作 - 如果我传递用户的ID令牌,则处理请求,如果我不能获得401.
但是,我无法在Lambda函数中获得授权用户的身份.所有文档都让我相信它应该在上下文中,但事实并非如此.我也无法在那里映射它.更重要的是,似乎没有办法为给定ID标记的用户查询用户池.
我需要一个身份池才能完成此任务吗?如果是这样,那怎么办?为什么API网关不会自动传递用户的身份?
ios ×2
python ×2
amazon-sns ×1
animated-gif ×1
c ×1
cocoa-touch ×1
git ×1
ios4 ×1
iphone ×1
jar ×1
jarjar ×1
java ×1
json ×1
lisp ×1
mfmailcomposeviewcontroller ×1
mypy ×1
objective-c ×1
optimization ×1
orientation ×1
python-3.x ×1
scala ×1
search ×1
simd ×1
swift ×1
swift4 ×1
typechecking ×1
typescript ×1
undefined ×1
winapi ×1