有了这个简单的类,我得到编译器警告
试图
x在自己的setter/getter中修改/访问
当我像这样使用它时:
var p: point = Point()
p.x = 12
Run Code Online (Sandbox Code Playgroud)
我得到一个EXC_BAD_ACCESS.如果没有明确支持ivars,我怎么能这样做?
class Point {
var x: Int {
set {
x = newValue * 2 //Error
}
get {
return x / 2 //Error
}
}
// ...
}
Run Code Online (Sandbox Code Playgroud) 如何在Swift中获取设备唯一ID?
我需要在数据库中使用ID,并在社交应用程序中作为我的Web服务的API密钥.跟踪日常使用的设备并将其查询限制在数据库中的东西.
谢谢!
与Objective-C不同,Swift没有预处理器,那么还有办法手动弃用类的成员吗?
我正在寻找类似的东西:
-(id)method __deprecated;
Run Code Online (Sandbox Code Playgroud) 所以我知道这Void用于表示函数不接受或返回值.在Swift中,Void实际上是空元组的类型别名().
有趣的是(在Beta 6中),您甚至可以声明类型的变量Void:
var x: Void
println(x)
x = test()
func test() {}
Run Code Online (Sandbox Code Playgroud)
这些陈述都是合法的.该println()打印"()".
到目前为止,我无法弄清楚这可以用于什么.为什么你需要一个不能保存任何值的变量?有没有人知道这方面的实际用途,还是这只是Swift的一个怪癖?
我刚开始学习Android编程.我创建了一个带有空白活动的新项目(API 19),并试图像这样添加一个ImageView :(在MainActivity的onCreate()中)
setContentView(R.layout.activity_main);
View view = (View) findViewById(R.layout.activity_main);
LinearLayout picLL = new LinearLayout(MainActivity.this);
picLL.layout(0, 0, 100, 100);
picLL.setLayoutParams(new LayoutParams(100, 100));
picLL.setOrientation(LinearLayout.HORIZONTAL);
((ViewGroup) view).addView(picLL); // <- This is line 36
ImageView myImage = new ImageView(this);
myImage.setImageResource(R.drawable.ic_launcher);
picLL.addView(myImage);
Run Code Online (Sandbox Code Playgroud)
然而,应用程序在发布后立即崩溃.我从Stackoverflow尝试了很多其他答案,但都没有奏效.似乎有一些我想念的东西......
这是LogCat输出:
04-17 10:02:35.611: E/AndroidRuntime(1402): FATAL EXCEPTION: main
04-17 10:02:35.611: E/AndroidRuntime(1402): Process: com.example.test, PID: 1402
04-17 10:02:35.611: E/AndroidRuntime(1402): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test/com.example.test.MainActivity}: java.lang.NullPointerException
04-17 10:02:35.611: E/AndroidRuntime(1402): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
04-17 10:02:35.611: E/AndroidRuntime(1402): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-17 10:02:35.611: E/AndroidRuntime(1402): at android.app.ActivityThread.access$800(ActivityThread.java:135)
04-17 10:02:35.611: E/AndroidRuntime(1402): …Run Code Online (Sandbox Code Playgroud) 我正在考虑开发一个iPhone和Android应用程序,以便他们可以通过蓝牙在彼此之间共享数据.可能吗?如果有,怎么样?
谢谢你的帮助
我正在开发一个新的通用应用程序(最低iOS 7),我想使用Swift(这是我使用这种新语言的第二个应用程序).在这个应用程序中,我需要AFNetworking框架,但我对与新版本Alamofire的兼容性有一些疑问.我知道Alamofire和iOS 7之间存在一些问题.所以,你有什么建议?在这个项目中使用Alamofire还是继续使用AFNetworking?
在Swift中用Xcode 6编写一个简单的应用程序.
class htmlViewController : UIViewController
{
@IBOutlet var webbb: UIWebView
}
class ViewController: UIViewController
{
override func viewDidLoad()
{
let url = NSURL(string: "http://apple.com")
let reqq = NSURLRequest(URL: url)
self.webbb.loadView(reqq)
super.viewDidLoad()
}
}
Run Code Online (Sandbox Code Playgroud)
在"self.webbb.loadView(reqq)"行上有一些错误:
ViewController没有名为WebView的成员.
有任何想法吗?
PS对不起noob问题!:-)
我遇到了这种奇怪的情况,我有两个协议,两个方法的参数都必须符合其他协议.听起来令人困惑,所以有些代码:
@protocol ProtocolB <NSObject>
@required
-(void)methodB:(id<ProtocolA>)parameter;
@end
@protocol ProtocolA <NSObject>
@required
-(void)methodA:(id<ProtocolB>)parameter;
@end
Run Code Online (Sandbox Code Playgroud)
编译器说:"找不到......的协议声明".根据首先使用的协议,它可以是ProtocolA或ProtocolB.将它们放在不同的文件中似乎并没有解决这个问题.
如果没有(主要的,可能复杂的)重新设计,我怎么能做到这一点?