小编swa*_*ner的帖子

iOS:reachabilityWithHostname YES虽然它应该是NO

我测试了不同的框架,例如

我想知道主机是否可以访问.在我的iPhone上,我将iMac设置为代理(Charles)并阻止或不阻止连接,但可达性始终为YES.仅当我设置不存在的主机时,它才返回NO.但是如果主机存在但我阻止了它的连接,我总是得到isReachable.有没有办法检查主机是否真的可以访问?

如果我尝试使用KSReachability,我会做以下事情:

self.reachability = [KSReachability reachabilityToHost:@"www.stackoverflow.com"];
self.reachability.notificationName = kDefaultNetworkReachabilityChangedNotification;
self.reachability.onReachabilityChanged = ^(KSReachability *reachability) {
    NSLog(@"isReachable: %i", reachability.reachable);
};
Run Code Online (Sandbox Code Playgroud)

我总是通过isReachable: 1以下配置到达那里:

  • 连接到Wifi
  • 将我的iMac配置为HTTP-Proxy
  • 阻止我的Charles Proxy中的www.stackoverflow.com

当我尝试在Safari中访问www.stackoverflow.com时,无法打开页面(按预期方式).isReachable: 0在这种情况下,我希望可达性为false().

编辑 所以对我来说最重要的问题是 - 如何实现我期待的行为?即应用程序不断检查给定的主机是否真的可以访问?

reachability ios

6
推荐指数
2
解决办法
5412
查看次数

CFBundleDisplayName本地化不起作用

我正在尝试本地化我的应用名称,但无法使其正常工作.我有一个本地化的InfoPlist.strings,其中包含以下内容:

CFBundleDisplayName = "Application Name in English";
CFBundleName = "App Name – in English";
Run Code Online (Sandbox Code Playgroud)

以及LSHasLocalizedDisplayName(Application has localized Display Name)设置为YES.我还能错过什么?

我能错过什么?在另一个应用程序中,它无缝地工作,但对于这个应用程序,我不能得到本地化的名称.

InfoPlist.strings与其他本地化字符串位于同一目录中,并且还选择了目标成员资格.

编辑:我发现,我有两个langauages(德语,英语),它适用于德语,但不适用于英语...同一个目录中的应用程序locatization(localizable.strings)工作完美,但是InfoPlist.strings不...

localization ios7

6
推荐指数
1
解决办法
2636
查看次数

NavigationView中的活动或片段?

我有一个用作滑入式菜单的NavigationView.每个菜单项本身都是一个用例,因此我倾向于使用包含不同片段的活动.

但几乎每个NavigationView/NavigationDrawer使用片段的例子,所以我不知道在这里使用什么.

我认为不同的用例应该在自己的活动中"封装",因此我并不真正理解为什么Navigation[View/Drawer]使用片段.这引出了我的问题:对于Navigation[View/Drawer]包含完全独立的用例 - 我应该链接到活动或片段吗?

android android-fragments android-activity navigationview

6
推荐指数
1
解决办法
1532
查看次数

用本地存储库替换远程存储库,但保留远程的提交历史记录

我在Github存储库中有一个“存储”的Android。现在,我对应用程序进行了完全重写(从另一个存储库中的新存储开始)-(如何)可以将完整的新存储库推送到现有存储库,但保留其提交历史记录?

我想我不想使用-f标志,因为然后删除了提交。最好的情况是拥有两个存储库的完整历史记录,但是代码仅应来自新存储库。

git github

6
推荐指数
1
解决办法
1352
查看次数

SQLiteAssetHelper - 特定手机上的问题,例如OnePlus

在我的应用程序中使用SQLiteAssetHelper时,我在某些设备上遇到崩溃,最重要的是在OnePlus设备上.现在我在这里读到它与数据库存储的目录有关.

现在我正在尝试找到一种解决方法,目前我能想出的最好的是这样的构造函数

public MySubclass(Context context) {
    super(context, databaseName, context.getFilesDir() + "/databases", null, databaseVersion);
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?还是这种方法存在其他问题?

编辑

例外是

Fatal Exception: android.database.sqlite.SQLiteException: Can't upgrade read-only database from version x to y: /data/data/my.package.id/databases/database.db
Run Code Online (Sandbox Code Playgroud)

对不起,我链接了错误的SO问题:这是正确的.在那里它说'OnePlus能够将数据库复制到/data/data/package-name/databases/filename.db,但它不允许访问该数据,我对此没有任何线索.

sqlite android oneplusone

6
推荐指数
1
解决办法
372
查看次数

iOS:例如Alamofire的节流带宽

是否可以在例如Alamofire中限制上传操作的带宽?

我想在用户使用应用程序的同时在后台上传数据,然后上传和下载更重要的内容.
因此,我想在特定情况下限制后台带宽.

我到目前为止找到的唯一可能是使用ASIHTTPRequest,它有一个maxBandwidthPerSecond属性,但是这个库太旧了,我想用更新的东西.

swift alamofire

6
推荐指数
1
解决办法
627
查看次数

使用Xcode 8进行Crashlytics/Fabric beta发布

如何在Xcode 8下使用Crashlytics/Fabric生成beta版本?是否仍然可以使用Automatically manage signing或者我必须像在Xcode 7和之前一样手动执行此操作?

目前测试人员Download problem detected正在使用Automatically manage signing,但我不知道这是否与...有关...

xcode ios crashlytics twitter-fabric xcode8

6
推荐指数
1
解决办法
518
查看次数

cocoapods框架在我的应用程序中比在示例中慢得多

我不认为它是特定于该框架,但使用TOMSMorphingLabel非常明显:我看到我的iPhone 5上的动画非常慢(我的iPhone 7+没有问题)然后我从网站上试了一下这个例子:这些动画按预期顺利进行.

这可能是什么原因?在后台运行没有其他操作,可能需要使用Build Settings,32bit架构或类似的东西吗?

32bit-64bit ios

6
推荐指数
1
解决办法
185
查看次数

领域:谓词返回LazyFilterCollection - 如何转换为Results <T>?

我正在使用NSPredicates直接在数据库上过滤我的数据库查询,但随后我想进一步Results<T>使用自定义谓词过滤返回的值():

elements.filter { (element) -> Bool in
    return ... 
}
Run Code Online (Sandbox Code Playgroud)

这个返回一个LazyFilterBidirectionalCollection- 如何使用它并再次获得结果?

realm nspredicate swift

6
推荐指数
1
解决办法
962
查看次数

Swift:URLSession.shared.dataTask 表示状态代码 304 = 200?

我正在请求如下所示的 JSON-API:

     var request = URLRequest(url: url)
    request.httpMethod = "GET"
    request.addValue(CredentialsProvider.shared.credentials, forHTTPHeaderField: "Authorization")

    let task = URLSession.shared.dataTask(with: request as URLRequest) { data, response, error in
        guard let data = data, let _ = response, error == nil else {
            return
        }

        let response1 = response as! HTTPURLResponse
        print(response1.statusCode) // 200 instead of 304
    }
Run Code Online (Sandbox Code Playgroud)

由于服务器进行缓存(我通过 CharlesProxy 验证),我预计状态代码为 304,但已记录 200 - 有没有办法获取“真实”状态代码?

swift urlsession

6
推荐指数
1
解决办法
2429
查看次数