小编Jea*_*ent的帖子

在Objective-C类中导入Swift协议

我尝试导入一个名为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类.

有谁看到我正在做的错误?

objective-c swift

108
推荐指数
5
解决办法
5万
查看次数

从Core Data实体生成Swift模型

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 model core-data nsmanagedobject swift

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

UiTextView使用xib字符串文件进行本地化

我在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)

但我的文字仍然是英文.

有什么建议吗?

internationalization ios

23
推荐指数
3
解决办法
7951
查看次数

Swift中的CGImageRelease

在Objc中,我CGImageRelease在处理图像后使用方法.但在Swift中,这种方法不可用.

关于Apple文档之后Retaining and Releasing Images有一个2 Objective-C symbols hidden

我的问题是,为什么CGImageReleaseSwift中没有更多?我们要调用另一种方法来取代它吗?

谢谢 !

cgimage ios swift

20
推荐指数
1
解决办法
6411
查看次数

避免在Swift中连续"if let"声明

在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编译器不允许这样做.

有什么建议吗?

swift

18
推荐指数
2
解决办法
3010
查看次数

如何在Swift中将协议作为参数传递

在Objective-C中,我知道如何传递protocolas参数:

- (void)MyMethod:(Protocol *)myparameter
Run Code Online (Sandbox Code Playgroud)

但在Swift中没有更多的Protocol类型.

如何在不知道哪个参数的情况下将协议作为参数传递?

protocols swift

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

使用迭代器而不是Swift中的位置访问数组的元素

我想知道在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)

arrays iteration iterator swift

8
推荐指数
1
解决办法
2832
查看次数

async/await和recursion

我正在尝试编写一个方法来递归显示一个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使用,但我还没有计算它.

有什么建议吗?

javascript react-native ecmascript-2017

8
推荐指数
1
解决办法
7945
查看次数

在Rails 4中创建API - 未初始化的常量Api :: V1 :: UsersController

对于个人项目,我想在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.rbMyProject的>应用>控制器> 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:in constantize …

api web-services routes ruby-on-rails ruby-on-rails-4

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

从本机代码访问AsyncStorage

我需要使用JS代码中的AsyncStorage将数据保存在本地存储中.

我想知道是否有办法从本机代码(Objective-C或Java)访问从AsyncStorage存储的数据.

谢谢!

android ios react-native

7
推荐指数
1
解决办法
1574
查看次数