我尝试导入一个名为AnalyticProtocolObjective-C类的Swift协议AnalyticFactory.
protocol AnalyticProtocol
{
}
Run Code Online (Sandbox Code Playgroud)
我从一个现有的Objective-C项目开始(我没有使用xCode创建一个新的Swift项目,我没有找到如何将我的Objective-C项目配置为xCode 6中的Swift项目).
在我的Swift文件中,我包含了.h命名的文件,MyProjectName-Swift.h但编译器返回一个错误,告诉我它不存在.所以,我创建了一个.h名为MyProjectName-Swift.h实际为空的文件(我不知道应该放在里面).
在苹果公司的文件,他们说我,包括我的.h文件名为MyProjectName-Swift.h我的.m文件.但我需要把它不包括在我的.m文件中,而是包含在我的文件中.h.这可能有问题吗?
当我尝试编译时,我遇到了这个错误:: 0:错误:xxxAnalyticFactory.h:39:无法找到'AnalyticProtocol'的协议声明
有罪的代码:
@interface AnalyticFactory : NSObject
{
Class<AnalyticProtocol> _analyticProtocolClass; // The type of the analytic class currently used.
}
Run Code Online (Sandbox Code Playgroud)
我想我不明白如何将Swift协议导入Objective-C类.
有谁看到我正在做的错误?
Xcode 8更新:
在Xcode 8中,需要转到Core Data Model Editor和Show the File Inspector.靠近底部是代码生成的选项.选择Swift.
编辑:我找到了从Core Data实体生成Swift模型的解决方案:
在Xcode上:
编辑>创建NSManagedOjbect>单击按钮"下一步">单击"下一步"按钮>选择"Swift"Langage>单击"创建"按钮
我使用Core Data在Xcode 6 beta上创建了一个新的Swift项目,尝试了Swift语言.
当我从Core Data的实体生成模型时,Xcode创建了Objective-C模型.
有没有办法用Core Data生成Swift模型而不是Obejctive-C模型?
谢谢 !
我在xCode中使用基础国际化来管理我的应用程序中的多种语言.
在xib文件中我有这个对象:
Xrj-9E-2VK it's an UITextView
Run Code Online (Sandbox Code Playgroud)
在相应的字符串文件中:
"Xrj-9E-2VK.text" = "text translated in french"
Run Code Online (Sandbox Code Playgroud)
但我的文字仍然是英文.
有什么建议吗?
在Objc中,我CGImageRelease在处理图像后使用方法.但在Swift中,这种方法不可用.
关于Apple文档之后Retaining and Releasing Images有一个2 Objective-C symbols hidden
我的问题是,为什么CGImageReleaseSwift中没有更多?我们要调用另一种方法来取代它吗?
谢谢 !
在Swift中,我使用if let声明来检查我的对象是否不是nil
if let obj = optionalObj
{
}
Run Code Online (Sandbox Code Playgroud)
但有时,我必须面对连续的if let声明
if let obj = optionalObj
{
if let a = obj.a
{
if let b = a.b
{
// do stuff
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找避免连续if let声明的方法.
我会尝试类似的东西:
if let obj = optionalObj && if let a = obj.a && if let b = a.b
{
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
但swift编译器不允许这样做.
有什么建议吗?
在Objective-C中,我知道如何传递protocolas参数:
- (void)MyMethod:(Protocol *)myparameter
Run Code Online (Sandbox Code Playgroud)
但在Swift中没有更多的Protocol类型.
如何在不知道哪个参数的情况下将协议作为参数传递?
我想知道在Swift中是否存在数组的迭代器,就像在CPP中一样,它允许避免使用位置来访问数组的下一个元素.
实际上,我在数组中使用position + 1来访问它的下一个元素:
var array = ["a", "b", "c", "d"]
func arrayToString(success : String -> Void)
{
var str = String()
var myFunc : (Int -> Void)!
myFunc = {
if $0 < array.count
{
str += array[$0]
myFunc($0 + 1)
}
else
{
success(str)
}
}
myFunc(0)
}
arrayToString({
println($0)
})
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个可用的解决方案:
var array = ["a", "b", "c", "d"]
func arrayToString(success : String -> Void)
{
var str = String()
var myFunc : (Iterator …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个方法来递归显示一个ActionSheetIOS来选择一个包含在数组中的值并返回所选的值:
async function _rescursiveSelect(data, index) {
if (index < data.length) {
const object = data[index];
if (object.array.length === 1) {
return await _rescursiveSelect(data, index + 1);
}
ActionSheetIOS.showActionSheetWithOptions({
title: 'Choose a value from array: ',
options: object.array,
},
buttonIndex => async function() {
const selectedValue = data[index].array[buttonIndex];
data[index].value = selectedValue;
delete data[index].array;
return await _rescursiveSelect(data, index + 1);
});
} else {
return data;
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我调用这个方法时,它会返回undefined.我想这个问题来自async/await使用,但我还没有计算它.
有什么建议吗?
对于个人项目,我想在Rails 4中创建Restful Web服务.
所以,我创建了我的第一个项目,rails-api并添加了以下代码:
在MyProject> config目录中的routes.rb
MyProject::Application.routes.draw do
namespace :api, defaults: {format: 'json'} do
namespace :v1 do
resources :users
end
end
end
Run Code Online (Sandbox Code Playgroud)
users_controller.rb在MyProject的>应用>控制器> API> V1>用户目录
module Api
module V1
class UsersController < ApplicationController
def index
end
def create
end
def show
end
def update
end
def delete
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
当我使用命令行启动rails服务器rails s并转到此URL时:http://localhost:3000/api/v1/users/show我遇到此错误:
未初始化的常量Api :: V1 :: UsersController
Rails.root:/ Users/Jean/Development/MyProject
应用程序跟踪| 框架跟踪| 完全跟踪activesupport(4.0.4)lib/active_support/inflector/methods.rb:228:在
const_get' activesupport (4.0.4) lib/active_support/inflector/methods.rb:228:inconstantize …
我需要使用JS代码中的AsyncStorage将数据保存在本地存储中.
我想知道是否有办法从本机代码(Objective-C或Java)访问从AsyncStorage存储的数据.
谢谢!
swift ×6
ios ×3
react-native ×2
android ×1
api ×1
arrays ×1
cgimage ×1
core-data ×1
iteration ×1
iterator ×1
javascript ×1
model ×1
objective-c ×1
protocols ×1
routes ×1
web-services ×1
xcode ×1