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) 我知道如何以编程方式执行此操作,但我确信有一种内置方式...
我使用的每种语言都有一些对象集合的默认文本表示,当你尝试将Array与字符串连接起来时,它会吐出来,或者将它传递给print()函数等等.Apple的Swift语言吗?有一种内置的方法可以轻松地将Array转换为String,或者在对数组进行字符串化时我们是否总是要显式?
我正在使用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中不支持定义顺序的迭代?假设后者,是否有一种简单的方法可以强制它按顺序发生?
我最近升级到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拒绝请求的信息?
<uses-permission>根据您添加的cordova插件,一些条目会自动添加到AndroidManifest.xml.但是,我需要<uses-permission android:name="android.permission.INTERNET" />权限,不会自动添加.
我可以将它直接添加到AndroidManifest.xml中,但是下次运行时它会被覆盖cordova build,我不想继续重新添加它...
我确定有一种"Cordova"方式来指定权限(在config.xml或其他地方),但我没有在他们的文档中看到它...
那么,指定用户权限的"Cordova方式"是什么?
回到South迁移的时代,如果你想创建一个扩展Django字段功能的自定义模型字段,你可以告诉South使用父类的内省规则,如下所示:
from south.modelsinspector import add_introspection_rules
add_introspection_rules([], ["^myapp\.stuff\.fields\.SomeNewField"])
Run Code Online (Sandbox Code Playgroud)
既然迁移已经转移到Django,那么上面的非南方是否相同?是不是还需要一个等价物,或者新的迁移内容是否足够巧妙,可以自行解决?
在以前版本的OSX中,您可以通过按cmd+ ctrl+ option+ 来反转显示屏上的颜色8.他们似乎已经删除了Mountain Lion中的该功能.有谁知道如何恢复该功能?
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 后来使用".但那并不是暗示说的......那么那面旗帜是什么?
在PyCharm IDE中,如果我右键单击带有doctest的函数/方法,有时右键单击菜单会给我选项:" 运行'Doctest my_function_name' ",有时右键单击菜单只会给出运行整个文件的选项(不作为doctest).
什么时候它会给出"运行doctest"选项以及何时不会?有没有办法以某种方式强迫它?
我正在使用cordova InAppBrowser来显示我应用中外部网站的内容.当我在iPhone上打开浏览器时,InAppBrowser底部有一些按钮用于关闭它或来回导航.Android设备上的InAppBrowser没有这样的按钮,并且没有明显的方式让用户关闭浏览器.
我知道如何以编程方式关闭InAppBrowser,但是在使用Android设备时用户如何关闭它?
我知道用户能打到硬件后退按钮关闭浏览器,但(1)这不是直观的 - 后退按钮通常意味着"回去的网页",和(2)我最终想改变的行为返回按钮返回显示在InAppBrowser内部的站点内的页面,而不是关闭浏览器.
android ×3
cordova ×3
django ×2
python ×2
swift ×2
ajax ×1
arrays ×1
django-1.8 ×1
django-south ×1
doctest ×1
enums ×1
inappbrowser ×1
ios ×1
macos ×1
optional ×1
pycharm ×1
python-2.7 ×1