我正在Swift的Xcode6 beta 4中开展一个项目.但是我在这个项目上遇到了很多问题,这个问题在Xcode6 beta 3中运行良好:
在早于7.0的iOS上,Swift不可用;
我记得Swift应该适用于iOS 6.0及以上版本.为什么突然改为iOS 7.0?
"ViewController"类没有初始化程序
'IBOutlet'属性具有非可选类型'UILabel'
所以我必须将我的代码更改为:
@IBOutlet weak var label: UILabel!
Run Code Online (Sandbox Code Playgroud)
它会在下一个版本中再次更改吗?
另一个问题是:
'CGColorSpaceModel'没有名为'value'的成员
我的代码是:
var colorSpaceModel : CGColorSpaceModel
{
return CGColorSpaceGetModel(CGColorGetColorSpace(self.CGColor))
}
if self.colorSpaceModel.value == kCGColorSpaceModelRGB.value || self.colorSpaceModel.value == kCGColorSpaceModelMonochrome.value {
Run Code Online (Sandbox Code Playgroud)
我不知道我现在该做什么.
我创建了一个新的单视图Swift项目并创建了一个MyModel:
class MyModel {
func add(a : Int, b : Int) -> Int {
return a + b
}
}
Run Code Online (Sandbox Code Playgroud)
但是我在创建测试用例时遇到了问题.错误信息:
/ Volumes/Macintosh HD/Users/user/Projects/TestCase/TestCaseTests/TestCaseTests.swift:26:19:使用未解析的标识符'model'

如您所见,导入TextCase(我的目标)并没有解决问题.解决问题的唯一方法是将MyModel.swift添加到target:TestCaseTests.但这与Objective-C项目不同(我根本不需要添加.m文件来测试案例目标).这是一个错误还是一个设计?
我正在开发电子书商店应用程序(我的目标用户每月将有10,000名用户).我很难决定选择AWS和Parse之间的后端.
Parse使用起来非常简单.它可以节省我一两个月的开发工作.但我对每月的请求数量表示担忧.有1,000,000个免费请求.但我不知道他们如何计算请求数量.我测试了演示应用程序.一个简单的运行花了我4个请求(代码中似乎只有一个请求.).我完全不知道1,000,000个请求可以服务器有多少用户.
AWS在第一年免费.它更灵活.我几乎可以控制一切.问题是我必须从头开始做所有事情.数据库,Web服务,安全性,服务器管理.此外,估算成本也非常困难.
我想听听您对成本,性能,可扩展性,安全性等的意见.谢谢
编辑于2016年11月16日:
Parse.com将于2017年1月28日终止.但它将提供开源版本.我个人认为它更好,因为我可以在任何我喜欢的地方托管自己的数据,例如在AWS.
我在这里找到了很好的讨论,但还有一个问题:
我知道通过NSObject的Objective-C实现引用计数器。如果NSObject不是基类,是否仍支持ARC?
我问过玉模板的同一个问题.但我现在想用把手.主要原因是它的html对我来说更容易.
这是我的视图文件夹结构:
views
|--- home.handlebars
|--- layouts
|---- main.handlebars
Run Code Online (Sandbox Code Playgroud)
我的布局是:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>{{title}}</title>
<link rel="stylesheet" href="/stylesheets/style.css">
</head>
<body>
{{{body}}}
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
jquery脚本在我的{{body}}之后加载.
这是我的主页模板:
<p>This is my home page</p>
<script type="application/javascript">
$(function() {
alert( "ready!" );
});
</script>
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在尝试在最后加载脚本.但不幸的是,它仍然在jquery脚本之前,因此我的脚本永远不会被调用.我的问题是,有没有像我在这个问题中为jade模板所做的那样(最后加载我自己的脚本)?谢谢
我的xcode突然遇到了分发任何应用程序的问题.当我单击"分发..."按钮并选择代码签名标识时.这是错误消息:
代码签名操作失败
无效的参数传递给codesign.参数为:--sign fd2f30b26c9b384c635a044aefa90683239a434a --force --preserve-metadata = identifier,entitlements,resource-rules/var/folders/c6/yjp3wvhx2bv34_wpcg4j779c0000gn/T/AD6840D0-4776-4EEF-BFC6-9EBA2A1188D6-212-0000012034964EA7/TestSigning.应用程序/ TestSigning
每个项目都会出现问题所以我认为这是xcode问题.在发生此问题之前我唯一做的就是单击"Provisoning Profiles"视图中的"Refresh"按钮.所有配置文件都有效,我可以在我的设备中运行所有应用程序.唯一的问题是我无法分发它们.
任何的想法?谢谢
有一个离子2项目.
这是我的代码:
export class PostPage {
posts : [any];
constructor(private nav:NavController,
private postSvc: PostService) {
}
ngOnInit() {
this.postSvc.load()
.subscribe( data => {
this.posts = data;
});
}
Run Code Online (Sandbox Code Playgroud)
错误消息是针对this.posts = data.我将this.posts定义为[any].同样在我的PostService中,我也将数据定义为[].
邮政服务代码:
load() {
return new Observable( observer => {
var Post = Parse.Object.extend("Post");
var query = new Parse.Query(Post);
query.find({
success: results => {
var data = [];
for (var i = 0; i < results.length; i++) {
var object = results[i];
var item = this.createPost(object);
data.push(item);
} …Run Code Online (Sandbox Code Playgroud) 这是我的代码:
class CustomAlertAction: UIAlertAction {
init(title : String) {
super.init(title: title, style: UIAlertActionStyle.Default) { (action) -> Void in
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了以下编译错误:
必须调用超类'UIAlertAction'的指定初始值设定项
我知道UIAlertAction的指定初始化程序是init().但是UIAlert的init(标题,样式,处理程序)不会调用它的指定初始化程序init()?
任何的想法?谢谢
PS:基于Apple的文档:
指定的初始化程序必须从其直接超类中调用指定的初始化程序."
这是否意味着不允许在Swift中继承UIAlertAction?在Objective-C中这样做没有问题.
我想创建UIAlertAction的子类的原因是因为我想添加一个ReactiveCocoa命令作为一个动作.
我已经在Google Play中安装了一个应用程序,在我升级Android Studio之前完全没问题.必须修改build.gradle以便可以编译项目以下是我更改的内容:
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile 'com.android.support:appcompat-v7:21.0.0'
compile 'com.google.android.gms:play-services:6+'
compile 'com.android.support:support-v4:+'
}
Run Code Online (Sandbox Code Playgroud)
唯一的变化是com.android.support:appcompat-v7:+,它更改为com.android.support:appcompat-v7:21.0.0.
我的问题是.findViewById(R.id.tabhost)总是返回null,以便应用程序崩溃.这是我的布局文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.app.FragmentTabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent" >
Run Code Online (Sandbox Code Playgroud)
我的java代码:
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTabHost;
public class MenuLeftFragment extends Fragment {
private FragmentTabHost mFragmentTabHost;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mView = getView();
if (mView != null) {
mFragmentTabHost = (FragmentTabHost) mView
.findViewById(R.id.tabhost);
Run Code Online (Sandbox Code Playgroud)
任何的想法?谢谢.