小编Kev*_*_TA的帖子

使用SQLCipher将加密数据库附加到未加密的数据库

我正在尝试使用SQLCipher将未加密的sqlite3数据库的内容添加到加密的数据库中.我根据我所试图做掉的这个这个.然而,有些事情我不清楚.

  1. 在行ATTACH DATABASE,加密数据库必须是类型.db?可以.sqlite匹配我的原始数据库吗?

  2. 说加密数据库必须已经存在吗?如果是这样,它应该在应用程序中的哪个位置?我是否必须提供文件路径(文档目录等)?

  3. 我在哪里可以找到成功加密的数据库?它会在哪里得救?

这是我的代码:

+ (void)encryptDB
{
    sqlite3 *unencrypted_DB;
    NSString *path_u = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] 
                  stringByAppendingPathComponent:@"dict.sqlite"];

    if (sqlite3_open([path_u UTF8String], &unencrypted_DB) == SQLITE_OK) {
        NSLog(@"Database Opened");
        // Attach empty encrypted database to unencrypted database
        sqlite3_exec(unencrypted_DB, "ATTACH DATABASE 'dict_encrypted.sqlite' AS encrypted KEY '1234';", NULL, NULL, NULL);

        // Create new tables within encrypted database to match those in unencrypted database
        sqlite3_exec(unencrypted_DB, "CREATE TABLE encrypted.t1(A,B,C);", NULL, NULL, NULL);

        // Copy items …
Run Code Online (Sandbox Code Playgroud)

sqlite iphone encryption sqlcipher

5
推荐指数
2
解决办法
2446
查看次数

iOS - 提示用户更新到最新的应用程序版本

如果用户使用的版本不是最新的,是否有任何方法或插件可以提醒用户升级应用程序?我想我可以 ping 一个 Web 服务来检查当前版本是什么,并与用户的版本进行比较,然后从那里开始。顺便说一句,有没有办法检查应用程序的当前版本(我不知道的某些属性),或者您是否只需将版本硬编码为某些浮点变量或其他东西?

谢谢

iphone ios

5
推荐指数
1
解决办法
5661
查看次数

如何检查子域的IP地址

我将XML从客户端站点发送到外部服务器.此外部服务器管理员需要验证发件人的IP.我们从主站点(domain.com)发送时脚本工作正常,但我不确定我们何时从主站点的子域发送(sub.domain.com,当前收到错误).有没有办法检查子域的IP,以便我可以给管理员正确的IP地址?

谢谢.

更新:我使用了firefox扩展"IP地址和域信息",并且比较了domain.com和sub.domain.com的信息,两者看起来完全相同.

ip subdomain

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

来自AVCaptureVideoPreviewLayer的UIImage

我试图从视频输入中获取静止图像(基本上是暂停或"快照"功能).我的项目是使用Benjamin Loulier的模板设置.我的问题是,即使我通过prevLayer(AVCaptureVideoPreviewLayer)在屏幕上显示彩色视频,我已将视频设置设置为灰度,因此我无法从customLayer(常规CALayer)获取UIImage .

我尝试使用此处给出的此函数,但由于某些愚蠢的原因(显示清晰/透明),这对AVCaptureVideoPreviewLayer不起作用.有没有人知道将AVCaptureVideoPreviewLayer的内容保存为UIImage的方法?

iphone calayer uiimage ios avcapturesession

5
推荐指数
1
解决办法
5501
查看次数

iOS - setIdleTimerDisabled:NO不工作

我有一个使用摄像机的应用程序,因此屏幕不能变暗.抑制屏幕变暗效果如下:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    [[UIApplication sharedApplication] setIdleTimerDisabled:YES];
}
Run Code Online (Sandbox Code Playgroud)

但是,当应用程序关闭并进入后台时,将IdleTimer设置为NO无法正常工作.屏幕在主屏幕上永远保持不变.这就是我试图实现这一目标的方式.

- (void)applicationWillResignActive:(UIApplication *)application
{
    [[UIApplication sharedApplication] setIdleTimerDisabled:NO];
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的地方添加这行代码?

iphone uiapplicationdelegate ios

5
推荐指数
2
解决办法
5746
查看次数

防止键盘自动出现在UIAlertController中

UIAlertController在Swift中有一个(警报样式),一切正常.但是,UITextField我添加到它的是一个可选字段,用户无需输入文本.问题是当我显示时UIAlertController,键盘与默认选择的文本字段同时出现.除非用户点击,否则我不希望键盘出现UITextField.如何才能做到这一点?

    let popup = UIAlertController(title: "My title",
        message: "My message",
        preferredStyle: .Alert)
    popup.addTextFieldWithConfigurationHandler { (optionalTextField) -> Void in
        optionalTextField.placeholder = "This is optional"
    }
    let submitAction = UIAlertAction(title: "Submit", style: .Cancel) { (action) -> Void in
        let optionalTextField = popup.textFields![0]
        let text = optionalTextField.text
        print(text)
    }
    let cancelAction = UIAlertAction(title: "Cancel", style: .Default, handler: nil)
    popup.addAction(cancelAction)
    popup.addAction(submitAction)
    self.presentViewController(popup, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

uitextfield uikeyboard ios swift uialertcontroller

5
推荐指数
1
解决办法
840
查看次数

Android数据绑定:将变量传递给NavigationView

当用户登录我的应用程序时,我在中收到其个人资料信息(名称,头像等)时MainActivity,我想通过数据绑定用用户参数填充“导航视图标题”中的某些字段。我已经尝试了docs中提出的方法,但也许仅限<include />于此?

activity_main.xml

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <data>

        <variable
            name="user"
            type="com.example.app.models.User" />
    </data>

    <android.support.v4.widget.DrawerLayout 
        // layout params... >

        <include
            layout="@layout/app_bar_main"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

        <android.support.design.widget.NavigationView xmlns:bind="http://schemas.android.com/apk/res-auto"
            android:id="@+id/nav_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:fitsSystemWindows="true"
            app:headerLayout="@layout/nav_header_main"
            app:menu="@menu/activity_main_drawer"
            bind:user="@{user}" />

    </android.support.v4.widget.DrawerLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)

nav_header_main.xml

<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<data>

    <variable
        name="user"
        type="com.example.app.models.User" />
</data>

<LinearLayout
    // layout params... >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="@dimen/nav_header_vertical_spacing"
        android:text="@{user.name}"
        android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

</LinearLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)

主要活动

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
    binding.setUser(User.getInstance());
// …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-databinding

5
推荐指数
2
解决办法
1453
查看次数

从C数组创建NSArray

有许多线程采用相反的方法,但是我有兴趣从原始C数组转换为NSArray。原因是我想从数组内容创建一个NSString。要创建NSString,我将使用:

NSArray *array;
NSString *stringFromArray = [array componentsJoinedByString:@","];
Run Code Online (Sandbox Code Playgroud)

我用逗号连接数组的元素,因为稍后将字符串保存为.csv文件。我认为这并不重要,但是我要处理的C数组的类型为double,大小为43。

double c_array = new double [43];
Run Code Online (Sandbox Code Playgroud)

谢谢!

c objective-c nsstring nsarray

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

Xcode:警告:输出文件的多个构建命令AND错误:无法打开可执行文件''

我一直在阅读无数其他帖子,并尝试了很多修复,但没有任何方法可以解决我的问题.我将在前2-3个月说我没有在Macbook上使用Xcode.这是唯一一个有这个问题的项目(在我试过的4个左右).打开Xcode后我做的第一件事就是改变了项目的名称以及.h和.m文件.我通过Xcode完成了所有这些,而不是Finder.

导航器中没有任何内容以红色文本显示,表示无法找到它.这是我已经尝试过的(很多次).

关闭/打开Xcode.
清除项目和构建文件夹.
删除派生数据文件夹.
使用磁盘工具来修复权限.
重启电脑.
尝试了不同的代码签名组合.
从设备删除应用程序.
通过项目搜索任何重复的文件名.

这是警告逐字:

警告:输出文件的多个构建命令/Users/jinser/Library/Developer/Xcode/DerivedData/Landmarks-bgnzcomxftpffiezmwocaqdydrlj/Build/Products/Debug-iphoneos/Landmarks.app/Landmarks

这是错误:

GenerateDSYMFile /Users/jinser/Library/Developer/Xcode/DerivedData/Landmarks-bgnzcomxftpffiezmwocaqdydrlj/Build/Products/Debug-iphoneos/Landmarks.app.dSYM/Users/jinser/Library/Developer/Xcode/DerivedData/Landmarks-bgnzcomxftpffiezmwocaqdydrlj/Build /产品/ Debug-iphoneos/Landmarks.app /地标cd"/ Users/jinser/Desktop/Kevin/Cocos2D Projects/ARSpaceships"setenv PATH"/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/ bin:/ usr/bin:/ bin:/ usr/sbin:/ sbin"/ Developer/usr/bin/dsymutil/Users/jinser/Library/Developer/Xcode/DerivedData/Landmarks-bgnzcomxftpffiezmwocaqdydrlj/Build/Products/Debug-iphoneos /Landmarks.app/Landmarks -o /Users/jinser/Library/Developer/Xcode/DerivedData/Landmarks-bgnzcomxftpffiezmwocaqdydrlj/Build/Products/Debug-iphoneos/Landmarks.app.dSYM

错误:无法打开可执行文件''

这是Mac 10.6.8上的Xcode 4.2.请,任何建议将不胜感激.我正在失去理智.

谢谢.

iphone xcode

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

Android警报对话框用另一种颜色替换默认蓝色

我正在使用单选警告对话框,我想将默认蓝色(标题行和单选按钮)替换为我在标题栏中使用的橙色.我能够改用标题栏setCustomTitle(),但我迷失了试图摆脱这个该死的蓝色.

对于标题栏

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@color/orange" >

    <TextView
        android:id="@+id/alertTitle"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="14dp"
        android:gravity="center"
        android:text="Alert Title"
        android:textColor="@color/white"
        android:textSize="18sp" />    

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

构建AlertDialog

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
View customTitle = View.inflate(MainActivity.this, R.layout.custom_alert_title, null);
builder.setCustomTitle(customTitle);
builder.setSingleChoiceItems(mAlertOptions, -1, new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {                    
        // do stuff
        dialog.dismiss();
    }
}).create().show();
Run Code Online (Sandbox Code Playgroud)

这就是它的样子

在此输入图像描述

我需要摆脱这个蓝色!救命!

android android-layout android-alertdialog

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