小编Tro*_*roy的帖子

Swift语言中的感叹号是什么意思?

Swift编程语言指南有以下示例:

class Person {
    let name: String
    init(name: String) { self.name = name }
    var apartment: Apartment?
    deinit { println("\(name) is being deinitialized") }
}

class Apartment {
    let number: Int
    init(number: Int) { self.number = number }
    var tenant: Person?
    deinit { println("Apartment #\(number) is being deinitialized") }
}

var john: Person?
var number73: Apartment?

john = Person(name: "John Appleseed")
number73 = Apartment(number: 73)

//From Apple's “The Swift Programming Language” guide (https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html)
Run Code Online (Sandbox Code Playgroud)

然后,当将公寓分配给该人时,他们使用感叹号来"解开实例":

john!.apartment = number73
Run Code Online (Sandbox Code Playgroud)

"打开实例"是什么意思?为什么有必要?它与仅执行以下操作有何不同:

john.apartment …
Run Code Online (Sandbox Code Playgroud)

optional swift forced-unwrapping

513
推荐指数
9
解决办法
14万
查看次数

如何将Swift数组转换为字符串?

我知道如何以编程方式执行此操作,但我确信有一种内置方式...

我使用的每种语言都有一些对象集合的默认文本表示,当你尝试将Array与字符串连接起来时,它会吐出来,或者将它传递给print()函数等等.Apple的Swift语言吗?有一种内置的方法可以轻松地将Array转换为String,或者在对数组进行字符串化时我们是否总是要显式?

arrays ios swift

333
推荐指数
11
解决办法
22万
查看次数

按定义顺序迭代python枚举

我正在使用python 3.4中的backported Enum功能和python 2.7:

> python --version
Python 2.7.6
> pip install enum34
# Installs version 1.0...
Run Code Online (Sandbox Code Playgroud)

根据python 3中的枚举文档(https://docs.python.org/3/library/enum.html#creating-an-enum),"枚举支持迭代,按定义顺序 ".但是,为了我,迭代不会发生:

>>> from enum import Enum
>>> class Shake(Enum):
...     vanilla = 7
...     chocolate = 4
...     cookies = 9
...     mint = 3
...     
>>> for s in Shake:
...     print(s)
...     
Shake.mint
Shake.chocolate
Shake.vanilla
Shake.cookies
Run Code Online (Sandbox Code Playgroud)

我是否误解了某些内容,或者是在后向版本的Enums中不支持定义顺序的迭代?假设后者,是否有一种简单的方法可以强制它按顺序发生?

python enums python-2.7

57
推荐指数
1
解决办法
4万
查看次数

升级到Cordova 5.0 + cordova-android@4.0后,Ajax请求失败

我最近升级到Cordova 5.0(和Cordova Android 4.0),从那时起,我的应用程序无法再访问外部资源.

我仍然<access origin="*" />在config.xml中(如前所述),我仍然<uses-permission android:name="android.permission.INTERNET" />在AndroidManifest.xml中(如前所述),但是ajax调用被拒绝而没有解释("textStatus"参数是"错误","errorThrown"参数是null,xhr.state()返回"rejected").

我已经验证没有请求到达服务器,所以它似乎被Android停止了,但是日志没有给出任何解释为什么......

我可以从Android浏览器访问有问题的网址,而不是从应用程序访问.

Ajax请求是通过向Backbone.sync()的调用由Backbone.js的,它最终调用jQuery的$.阿贾克斯().我没有改变任何关于如何进行通话的信息​​......只是升级了cordova.

在Cordova 5.0中是否有针对网络请求的新要求​​/设置,或者我需要做的与以前的Cordova版本不同的任何事情?

有谁知道我可以获得更多关于为什么Android和/或Cordova拒绝请求的信息?

ajax android cordova

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

如何为Cordova项目向AndroidManifest.xml添加"uses-permissions"标签?

<uses-permission>根据您添加的cordova插件,一些条目会自动添加到AndroidManifest.xml.但是,我需要<uses-permission android:name="android.permission.INTERNET" />权限,不会自动添加.

我可以将它直接添加到AndroidManifest.xml中,但是下次运行时它会被覆盖cordova build,我不想继续重新添加它...

我确定有一种"Cordova"方式来指定权限(在config.xml或其他地方),但我没有在他们的文档中看到它...

那么,指定用户权限的"Cordova方式"是什么?

android cordova

27
推荐指数
3
解决办法
3万
查看次数

是否有南方的add_introspection_rules()的Django 1.7+替代品?

回到South迁移的时代,如果你想创建一个扩展Django字段功能的自定义模型字段,你可以告诉South使用父类的内省规则,如下所示:

from south.modelsinspector import add_introspection_rules
add_introspection_rules([], ["^myapp\.stuff\.fields\.SomeNewField"])
Run Code Online (Sandbox Code Playgroud)

既然迁移已经转移到Django,那么上面的非南方是否相同?是不是还需要一个等价物,或者新的迁移内容是否足够巧妙,可以自行解决?

django django-south

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

在OSX Mountain Lion下反转颜色

在以前版本的OSX中,您可以通过按cmd+ ctrl+ option+ 来反转显示屏上的颜色8.他们似乎已经删除了Mountain Lion中的该功能.有谁知道如何恢复该功能?

macos osx-mountain-lion

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

升级到Django 1.8后,"提供了固定的默认值"

Django 1.8现在对模型有一些问题检测,这很好.然而,对于它给我的一个警告,我理解这个问题,但我不明白它给我的暗示是否更好.

这是我的(坏)模型字段:

my_date = DateField(default=datetime.now())
Run Code Online (Sandbox Code Playgroud)

而且很容易看出为什么那么糟糕.但这是它给我的暗示:

MyMoel.my_date:(fields.W161)提供了固定的默认值.
    提示:您似乎将此固定日期/时间/日期时间值设置为此字段的默认值.这可能不是你想要的.如果要将当前日期设置为默认值,请使用`django.utils.timezone.now`

所以,它说要使用timezone.now,但它有什么比这更好的datetime.now?它们都是 "固定默认值"... timezone.now返回一个日期时间实例,这是一个固定值...

我怀疑它实际上是否要我插入某种标语" timezone.now 后来使用".但那并不是暗示说的......那么那面旗帜是什么?

django django-1.8

23
推荐指数
2
解决办法
9974
查看次数

如何使用PyCharm运行doctests?

在PyCharm IDE中,如果我右键单击带有doctest的函数/方法,有时右键单击菜单会给我选项:" 运行'Doctest my_function_name' ",有时右键单击菜单只会给出运行整个文件的选项(不作为doctest).

什么时候它会给出"运行doctest"选项以及何时不会?有没有办法以某种方式强迫它?

python doctest intellij-idea pycharm

22
推荐指数
2
解决办法
7801
查看次数

如何使用cordova InAppBrowser为用户提供在使用Android设备时关闭浏览器的方法?

我正在使用cordova InAppBrowser来显示我应用中外部网站的内容.当我在iPhone上打开浏览器时,InAppBrowser底部有一些按钮用于关闭它或来回导航.Android设备上的InAppBrowser没有这样的按钮,并且没有明显的方式让用户关闭浏览器.

我知道如何以编程方式关闭InAppBrowser,但是在使用Android设备时用户如何关闭它?

我知道用户能打到硬件后退按钮关闭浏览器,但(1)这不是直观的 - 后退按钮通常意味着"回去的网页",和(2)我最终想改变的行为返回按钮返回显示在InAppBrowser内部的站点内的页面,而不是关闭浏览器.

android cordova cordova-2.0.0 inappbrowser

20
推荐指数
4
解决办法
4万
查看次数