小编rdi*_*z82的帖子

将参数从故事板传递到自定义UIView iOS

我已经创建了一个自定义UIView,我想用initialize它的自定义参数UIStoryboard.基本上,我已经加了UIViewUIStoryboard,我已经改变了类来我的自定义UIView.

在我的自定义UIView类中,我正在使用它的initWithCoder方法,initialize但我想使用提供的NSCoder来获取一些配置参数UIStoryboard,这可能还是有另一种方法将参数从UIStoryboard我的自定义传递UIView

谢谢!!

objective-c storyboard uiview custom-view ios

10
推荐指数
1
解决办法
2950
查看次数

从Android缓慢上传文件到Amazon S3

我已经按照亚马逊指南将文件上传到Amazon S3,我注意到它太慢了.上传一个20kb左右的简单png文件大约需要10秒.

最初我认为问题与线程有关,我已经实现了AsyncTask来上传图像,但问题仍然存在.以下是用于上传图像的代码.

private class UploadFileTask extends AsyncTask<String, Integer, String> {
    String remotePath;
    String remoteFileName;
    File file;
    Context context;
    S3UploadInterface listener;


    public UploadFileTask(Context context,String remotePath,String remoteFileName, File file, S3UploadInterface listener){
        this.context=context;
        this.remotePath=remotePath;
        this.remoteFileName=remoteFileName;
        this.file=file;
        this.listener=listener;
    }

    protected String doInBackground(String... params) {
        credentialsProvider = new CognitoCachingCredentialsProvider(context,
                "MY_PRIVATE_CREDENTIAL",
                Regions.US_EAST_1);
        TransferManager transferManager = new TransferManager(credentialsProvider);
        Upload upload = transferManager.upload(remotePath, remoteFileName, file);
        TransferProgress transferred = upload.getProgress();
        while (!upload.isDone()) {
            try {
                publishProgress((int) transferred.getPercentTransferred());
            } catch (Exception e) {
                listener.uploadFailed(e);
            }
        }
        return "uploaded";
    } …
Run Code Online (Sandbox Code Playgroud)

android amazon-s3 amazon-web-services

10
推荐指数
1
解决办法
963
查看次数

这是在apk中包含一对密钥(公共/私有)的最安全的方法

我正在开发一个Android应用程序,我必须通过一对私钥和公钥来维护与服务器的安全通信.哪个是在我的apk中存储私钥的最安全的方法?显然我要对代码进行模糊处理,但我想要更多的安全性.我想到了以下选项:

如果我用签名事务信息的方法创建一个本机共享库,那么apk只需要包含.so文件,这个文件是机器码,所以反编译可能很困难,不是吗?

有任何想法吗?谢谢

security android apk

8
推荐指数
2
解决办法
3071
查看次数

从gradle插件中获取带注释的方法

我正在为kotlin中的android项目开发一个gradle插件,我需要扫描项目源文件以获取所有测试的名称.我已经实现了目录扫描程序,我得到了Arraylist<File>所有测试类.

我试图对这个文件应用反射,但我总是找到一个没有类的异常.我想gradle插件试图在项目的同一个gradle插件中找到类,而不是使用插件的Android项目.

有没有办法扫描我的ArrayList中的每个File对象并获取带注释的所有方法@test

java android kotlin gradle-plugin

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

使用 LiveData 和 ObserveForever 递归调用惰性值

我有以下类结构:

活动 > ViewModel > DataManager > ApiManager

我正在尝试用于LiveData在层之间共享对象。DataManager 和 ApiManager 是 kotlin,object所以它们没有任何对活动的引用。为了实现“回调”,我observeforever在 DataManager 和 ApiManager 中使用以下方式:

fun doStuff(inParam:String, inParam2:String)LiveData<Pair<String,Boolean>>{
   var reponse:MutableLiveData<Pair<String,Boolean>> = MutableData()
   val requestResponse: LiveData<Pair<String, CustomType>>= ApiManager.doStuff(inParam1, inParam2)
   requestResponse.observeForever {
        //Do some task here
        response.value = Pair("ok",true)
   }
   return response
} 
Run Code Online (Sandbox Code Playgroud)

在实践中,它按预期工作,通过这种结构,我使用LiveData. 导出已签名的 apk 时出现问题。在此过程中VitalLint,尽管生成了已签名的 apk,但当我阅读时,它显示指向活动的以下错误LiveData

Error:java.lang.IllegalStateException: Recursive call in a lazy value under LockBasedStorageManager@351242ee (<unknown creating class>)
Run Code Online (Sandbox Code Playgroud)

该错误与此行相关联:

val status:Boolean = either.second
Run Code Online (Sandbox Code Playgroud)

我怀疑这可能与我实现观察的方式有关,observeForever但我没有找到任何其他方式来观察,而我的对象类中没有生命周期感知组件。有任何想法吗?

android kotlin android-livedata android-architecture-components

5
推荐指数
0
解决办法
850
查看次数

Init django应用程序与docker-compose

我是docker-compose的新手,我有一个带有我的django实例和一个mysql数据库的docker.我想创建一个自动配置的容器,它只在第一个docker run上运行命令.在此命令中,我想执行以下任务:

  1. 进行初始数据库迁移
  2. 创建管理超级用户
  3. 将mysql备份导入数据库

在此之后,系统应继续启动django测试网络服务器.

是否有任何方法可以告诉docker-compose在首次运行时运行命令,还是在django中有任何替代方法来控制系统是否已经配置和更新?

为了澄清这里我的dockfile和docker-compose.yml:

FROM python:3.4
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/

####################

version: '2'
services:
db:
   image: "mysql:5.6"
   ports:
     - 3306:3306
   environment:
     MYSQL_ROOT_PASSWORD: xxxxxx
     MYSQL_DATABASE: xxxxxx
     MYSQL_USER: xxxxx
     MYSQL_PASSWORD: xxxxxxx
 web:
   build: .
   command: python manage.py runserver 0.0.0.0:8000
   volumes:
     - .:/code
   ports:
     - "8000:8000"
   depends_on:
     - db
Run Code Online (Sandbox Code Playgroud)

谢谢.

python django docker docker-compose

4
推荐指数
1
解决办法
610
查看次数

Enum懒惰的属性

我想知道kotlin如何处理枚举属性.如果我们有一个具有以下结构的枚举:

enum class MyEnun(var sampleObject: MyObjectType){
   ONE(MyObjectType(blabla)),
   TWO(MyObjectType(blabla))
}
Run Code Online (Sandbox Code Playgroud)

两个MyObjectType实例是以惰性方式创建的,相反,它们是在创建枚举时创建的?

enums kotlin

4
推荐指数
1
解决办法
238
查看次数

如何写入Rust的特定原始文件描述符?

我需要写入文件描述符3.我一直在搜索它,但文档很差.我发现的唯一的事情是使用libc库和fdopen方法,但我还没有找到任何关于如何使用它或在其上书写的例子.

任何人都可以给我一个写入Rust文件描述符的例子吗?

unix io file-descriptor rust

2
推荐指数
1
解决办法
519
查看次数

使用空列表作为保护子句

我从erlang开始,并且从一些简单的练习开始。在这种情况下,我试图计算高斯的三角形行。我不明白为什么收到此警告:

Warning: this clause cannot match because a previous clause at line 6 always matches
Run Code Online (Sandbox Code Playgroud)

问题与guard子句有关,但对我来说xD似乎合法。以下是完整的代码:

create_row(Initial)->create_row(Initial,[1]).

create_row([First|Rest],Current) -> 
    io:format("rest size: ~w ~n",[Rest]),
    create_row(Rest,lists:append(Current,[First+lists:nth(1, Rest)]));

create_row([_|Rest],Current) when length(Rest)==0 -> lists:append(Current,[1]).
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

erlang

0
推荐指数
1
解决办法
1272
查看次数