小编Łuk*_*mek的帖子

从文件中读取JSON?

我有点头疼,因为一个简单的外观,简单的陈述在我脸上抛出一些错误.

我有一个名为strings.json的json文件,如下所示:

"strings": [{"-name": "city", "#text": "City"}, {"-name": "phone", "#text": "Phone"}, ...,
            {"-name": "address", "#text": "Address"}]
Run Code Online (Sandbox Code Playgroud)

我现在想读取json文件.我发现了这些陈述,但它不起作用:

import json
from pprint import pprint

with open('strings.json') as json_data:
    d = json.load(json_data)
    json_data.close()
    pprint(d)
Run Code Online (Sandbox Code Playgroud)

控制台上显示的错误是:

Traceback (most recent call last):
File "/home/.../android/values/manipulate_json.py", line 5, in <module>
d = json.loads(json_data)
File "/usr/lib/python2.7/json/__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer
[Finished in 0.1s with exit code 1]
Run Code Online (Sandbox Code Playgroud)

编辑 …

python json

284
推荐指数
4
解决办法
71万
查看次数

短路评估和副作用

好吧,我有点尴尬地问这个问题,但我只是想确定......

众所周知,C在布尔表达式中使用短路评估:

int c = 0;
if (c && func(c)) { /* whatever... */ }
Run Code Online (Sandbox Code Playgroud)

在该示例func(c)中未调用,因为c求值为0.但是,比较的副作用会改变下一个被比较的变量的更复杂的例子呢?像这样:

int c; /* this is not even initialized... */
if (canInitWithSomeValue(&c) && c == SOMETHING) { /*...*/ }
Run Code Online (Sandbox Code Playgroud)

函数canInitWithSomeValue返回true并在成功时更改给定指针的值.是否保证后续比较(c == SOMETHING在本例中)使用的值设置为canInitWithSomeValue(&c)

无论编译器使用多么繁重的优化?

c

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

处理iOS Framework项目的依赖项

我使用这种方法创建了iOS Framework项目:https://github.com/jverkoey/iOS-Framework

工作非常简洁,但我对如何包含我的框架工作所需的库/框架有点困惑,特别是如何做到这一点,以便在使用我的框架的第三方客户端应用程序可以包含这些库也没有冲突.

假设我的框架代码需要这两件事:

  • FacebookSDK.framework
  • libFlurry.a

第一个是iOS框架.当我将它添加到我的框架中的"Link Binary With Libraries"阶段并尝试编译使用我的框架的客户端项目时,链接器抱怨缺少符号 - 我需要将FacebookSDK添加到客户端项目中这很棒:没有可能如果客户端应用想要使用Facebook,则会发生冲

但是,当我对Flurry静态库执行相同操作时,编译客户端项目时会出现重复符号错误.这让我有点困惑,因为不是FacebookSDK.framework只是一个打包的静态库?

ukaszs-iMac:FacebookSDK.framework lukasz$ file Versions/A/FacebookSDK 
Versions/A/FacebookSDK: Mach-O universal binary with 3 architectures
Versions/A/FacebookSDK (for architecture i386): current ar archive random library
Versions/A/FacebookSDK (for architecture armv7):    current ar archive random library
Versions/A/FacebookSDK (for architecture cputype (12) cpusubtype (11)): current ar archive random library
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

  1. 为什么嵌入框架(如Facebook)的库没有链接到我的Framework项目产品,而库包含为.a文件?
  2. 如何在我的框架中包含.a文件,以便当使用我的框架的客户端应用程序也需要这个特定的静态库时,它不会产生重复的符号错误?

linker frameworks static-libraries ios

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

Android奇怪的测试分片

我在Android上尝试测试分片,我得到了非常奇怪的结果:

+ adb -s emulator-5580 shell am instrument -e numShards 2 -e shardIndex 0 -e class com.package.etc.automation.Tests.SanityTest.SanityTest -w com.package.etc.test/android.support.test.runner.AndroidJUnitRunner

com.package.etc.automation.Tests.SanityTest.SanityTest:..........

Time: 306.578

OK (10 tests)


+ adb -s emulator-5582 shell am instrument -e numShards 2 -e shardIndex 1 -e class com.package.etc.automation.Tests.SanityTest.SanityTest -w com.package.etc.test/android.support.test.runner.AndroidJUnitRunner

com.package.etc.automation.Tests.SanityTest.SanityTest:......................

Time: 645.723

OK (22 tests)
Run Code Online (Sandbox Code Playgroud)

如您所见,adb将测试分成两个不均匀的组.第二个测试的测试次数是第一个的两倍,执行时间是原来的两倍.如果你问我,不是最好的并行性.

是否有可能控制测试的分布,或至少强制adb平均分割测试?

junit instrumentation android sharding adb

15
推荐指数
1
解决办法
233
查看次数

Android中的PorterDuff颜色效果,用于给定视图下的视图

是否有可能在Android中设置一个视图,它将一些颜色过滤器应用于其边界内可见的所有内容?就像在这个例子中:

过滤视图

只是一个简单的矩形视图,可以反转其下方所有内容的颜色.当然,当用户滚动列表时,它也会反映在倒置框中.有没有一些简单的方法来使用彩色滤镜,PorterDuff模式等?

android colorfilter porter-duff

13
推荐指数
1
解决办法
4518
查看次数

NSPointerArray奇怪的压缩

NSPointerArray一些NSObject已被释放的弱者.在打电话给compact我看之前是:

(lldb) po [currentArray count]
1
(lldb) po [currentArray pointerAtIndex:0]
<nil>
(lldb) po [currentArray allObjects]
<__NSArrayM 0x16f04f00>(

)
Run Code Online (Sandbox Code Playgroud)

这是有道理的,但真正奇怪的是,当我调用compact该数组时,我看到了相同的值!计数仍然返回1并且pointerAtIndex:0nil.

为什么没有删除nil?

编辑

这是完整的代码(是的,它是XCTesting框架):

- (void)testCompaction {
    __weak id testingPointer = nil;

    NSPointerArray *weakArray = [NSPointerArray weakObjectsPointerArray];

    @autoreleasepool {

        NSObject *someObj = [[NSObject alloc] init];

        testingPointer = someObj;

        [weakArray addPointer:(__bridge void*)testingPointer];

        NSLog(@"before compaction inside autorelease: testingPointer = %@ count = %d, allObjects = %@, pointerAtIndex:0 = %@, pointerAtIndex:0 class = …
Run Code Online (Sandbox Code Playgroud)

objective-c automatic-ref-counting nspointerarray

12
推荐指数
2
解决办法
1129
查看次数

用于iPhone的CSS解析库

我正在寻找一些静态库或开源项目(在obj-c中,在一些许可许可下发布)来解析iPhone中的CSS.有什么建议?

css iphone parsing objective-c

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

对于具有不匹配主题名称的自签名CA,SecTrustEvaluate失败并显示kSecTrustResultRecoverableTrustFailure

这是我使用自签名证书进行身份验证的非常标准的NSURLConnection回调:

- (SecCertificateRef)certRefFromDerNamed:(NSString*)derFileName resultingDataRef:(CFDataRef*)dataRefPtr{
    NSString *thePath = [[NSBundle mainBundle] pathForResource:derFileName ofType:@"der"];
    NSData *certData = [[NSData alloc] initWithContentsOfFile:thePath];
    CFDataRef certDataRef = (__bridge_retained CFDataRef)certData;
    SecCertificateRef cert = SecCertificateCreateWithData(NULL, certDataRef);
    *dataRefPtr = certDataRef;
    return cert;
}

- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {

if (connection == self.connection) {

    BOOL trusted = NO;
     if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) {

        SecPolicyRef policyRef = SecPolicyCreateBasicX509();

        SecCertificateRef cert1;
        CFDataRef certData1;

        cert1 = [self certRefFromDerNamed:@"some3rdpartycacert" resultingDataRef:&certData1];

        SecCertificateRef certArray[1] = { cert1 };
        CFArrayRef certArrayRef = CFArrayCreate(NULL, (void *)certArray, 1, NULL);

        SecTrustRef …
Run Code Online (Sandbox Code Playgroud)

ssl certificate-authority ssl-certificate ios

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

核心数据中的高级并发性

我在哪里可以找到高级CoreData并发的具体示例?高级我指的是在两个或多个线程上同时运行的上下文和NSManagedObjects上的操作,每个线程都可以读取和更改对象.每个对象都保存上下文并监听另一个线程中的更改,每个人都正确地合并更改,没有任何崩溃,没有不一致的异常,一切都按照应有的方式完成.

我阅读了有关Core Data并发的官方Apple文档,现在我正在寻找代码示例,教程,书籍或至少一些有关如何处理此类场景的更详细信息.

core-data ios

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

如何正确地将主线程的NSManagedObjectContext中的删除传播到后台线程上的子上下文?

我想弄清楚如何解决以下情况

  1. 有一个主线程NSManagedObjectContext使用NSMainQueueConcurrencyType.它产生了几个后台线程,为它们提供了NSManagedObjectID一些可以处理的对象.
  2. 后台线程执行一些工作(例如,将对象数据发送到服务器,接收响应并相应地更新对象).线程使用子上下文NSConfinenmentConcurrencyType
  3. 同时,用户从主线程的上下文中删除对象(通过UI).
  4. 应该通知背景上下文并处理这种情况,以防止在后台上下文保存中"无法完成故障"异常.

I thought the main context (some custom object that manages it) could keep the record of the object ids that were deleted during background thread lifetime (or, more precisely, between creating background context and final save of the background context). Then the background context would have to perform deleteObject: on these objects just before it saves. And everything will go smoothly.

In order to be sure that main …

multithreading core-data nsmanagedobjectcontext ios

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

崩溃/杀死后的Android任务返回堆栈和应用程序会话管理

我想知道现代Android开发世界中有关Back Stack管理的常见做法或模式,特别是处理应用程序被杀或崩溃的情况,以及系统尝试重新创建其活动,因为应用程序创建的任务仍然存在.

以下是在示例应用上演示上述行为的视频:https://www.dropbox.com/s/pkm88dvdpzsw9lm/IMG_2334-480.mov?dl = 0

这里是源代码 - 基本上只是一个使用Android Studio向导创建的简单应用程序:ssh://git@github.com:lukaszs-appdate/crashingtask.git

假设该应用程序在开始时显示登录活动.然后当用户登录时从服务器下载数据并允许用户操作数据,启动其他活动,操纵应用程序的状态等.重要的假设是当用户例如切换到不同的应用程序并返回到我们的应用程序时,他们看到最后一个活动,而不是回到登录.因此,我认为文档https://developer.android.com/guide/components/activities/tasks-and-back-stack.html中的标记组合不足以解决问题.

问题是,当:a)应用程序崩溃并重新启动,或b)使用Android中的任务切换按钮将应用程序移至后台,然后在Android Studio中手动终止并通过点击任务图标然后返回Android尝试从任务中重新创建活动.我想让它在这些事件的情况下从头开始启动应用程序并显示登录屏幕.

我看到的唯一解决方案是除了登录之外的所有活动的一些丑陋的父类,我们将检查是否设置了一些伪会话变量,如果不是,则假设应用程序已重新启动并替换整个任务堆栈登录活动,或者做一些finish()调用或其他类似臭的东西.

还有其他想法吗?当有问题的应用程序被杀死时,Android是否只能删除应用程序创建的任务?

一个干净的解决方案是使用某种会话管理,允许任何活动有效地恢复应用程序的业务状态,使用户能够从任何活动中正确地恢复应用程序,即使它已被杀死.但这是另一个讨论.

crash session android activity-lifecycle back-stack

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

迭代器重置时的tensorflow数据集混洗行为

我发现reshuffle_each_iteration参数tf.Dataset.shuffle有点混乱。考虑以下代码:

import tensorflow as tf

flist = ["trimg1", "trimg2", "trimg3", "trimg4"]

filenames = tf.constant(flist)

train_x_dataset = tf.data.Dataset.from_tensor_slices((filenames))
train_x_dataset = train_x_dataset.shuffle(buffer_size=10, reshuffle_each_iteration=False)

it_train_x = train_x_dataset.make_initializable_iterator()

next_sample = it_train_x.get_next()

with tf.Session() as sess:
    for epoch in range(3):
        sess.run(it_train_x.initializer)
        print("Starting epoch ", epoch)
        while True:
            try:
                s = sess.run(next_sample)
                print("Sample: ", s)
            except tf.errors.OutOfRangeError:
                break
Run Code Online (Sandbox Code Playgroud)

代码输出:

Starting epoch  0
Sample:  b'trimg2'
Sample:  b'trimg1'
Sample:  b'trimg3'
Sample:  b'trimg4'
Starting epoch  1
Sample:  b'trimg4'
Sample:  b'trimg3'
Sample:  b'trimg2'
Sample:  b'trimg1'
Starting …
Run Code Online (Sandbox Code Playgroud)

tensorflow tensorflow-datasets

3
推荐指数
1
解决办法
2512
查看次数

Webapp主屏幕标题建议和jquery移动

当用户从移动Safari中选择"添加到主屏幕"选项时,她会看到一个对话框,在该对话框中,她可以输入该快捷方式的标题.文本字段已填充一些默认标题.

问题是:这个标题取自哪里?

在我的代码中,我有一个页面的标题(单个html文件中的所有页面):

<div data-role="header" class="toolbar">
    <h1 id="someHeader" class="exampleHeader">Example Header</h1>
    <a href="#" onclick="loadOtherStuff()">Other</a>
</div>
Run Code Online (Sandbox Code Playgroud)

我正在使用动态更改此标题

var someDifferentTitle = ...
$('.exampleHeader').html(someDifferentTitle).trigger('create');
Run Code Online (Sandbox Code Playgroud)

标题更新很好,但当我点击"添加到主屏幕"时,系统仍然使用原始的"示例标题"提示!

如何解决这个问题?有任何想法吗?

iphone web-applications mobile-safari jquery-mobile

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