小编Too*_*dos的帖子

为什么以及何时将@JvmStatic与伴侣对象一起使用?

我试图理解使用/不使用@JvmStatic与何时使用其中任何一个之间的区别.

所以,使用Kotlin和Java,我可以这样做:

TestKotlin.kt

class TestKotlin {
    companion object {
        val someString = "hello world"
    }
}
Run Code Online (Sandbox Code Playgroud)

然后由Java调用,如下所示:

TestJava.java

public class TestJava {
    String kotlinStaticString = TestKotlin.Companion.getSomeString();
}
Run Code Online (Sandbox Code Playgroud)

但是,有这个选项2:

TestKotlin.kt V2

class TestKotlin {
    companion object {
        @JvmStatic  // <-- notice the @JvmStatic annotation
        val someString = "hello world"
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,从Java调用它,如下所示:

TestJava.java V2

public class TestJava {
    String kotlinStaticString = TestKotlin.getSomeString();
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

  • 在行为或内存分配方面,这两种情况有何不同?
  • 是否有偏好使用哪一个?
  • 两者都创建一个伪静态单例对象,就像Java静态一样吗?

谢谢!

java android kotlin kotlin-companion

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

Vector Asset Studio将彩色.svg文件导入为黑色和白色

我正在使用此处的说明,从Google使用新选项(2016年3月)将.svg文件导入drawable而不是.png文件.

我遇到的问题是文件导入为黑白,即使文件有很多颜色.

以下是Google Chrome浏览器读取的.svg文件的图片: 在此输入图像描述

然后,Vector Asset Studio会像这样读取同一个文件: 在此输入图像描述 在此输入图像描述

在应用程序中,图像显示为黑色和白色.

知道为什么会这样吗?

.svg文件是在Adobe PhotoShop Creative Cloud上生成的,我在Mac上使用的是Android Studio 1.5.1.

谢谢!

编辑:添加了.svg文件的链接我正在使用这个问题.

svg android vector-graphics android-studio

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

重新启动应用程序后找不到保存的文件(在设备中)

我有一个应用程序,从图片生成.pdf文件.如果我在拍摄照片的同一会话中读取文件,则文件会正确显示.

但是,如果我重新启动应用程序,则文件无法打开.显然,当应用程序重新启动时,应用程序的代码没有任何变化,因此位置引用保持不变.

该文件正在保存到此位置:

/var/mobile/Containers/Data/Application/E119DC03-347B-4C84-B07B-C607D40D26B9/Documents/Test_1_Mod.pdf
Run Code Online (Sandbox Code Playgroud)

奇怪的是,如果我转到Xcode的"设备"部分,我可以在重新启动应用程序之前和之后看到Documents文件夹中的文件:

在此输入图像描述

编辑:这是我如何获取保存文件的位置:

NSArray *arrayPaths =
NSSearchPathForDirectoriesInDomains(
                                    NSDocumentDirectory,
                                    NSUserDomainMask,
                                    YES);
NSString *path = [arrayPaths objectAtIndex:0];
modified_pdfFileName = [path stringByAppendingPathComponent:modified_filename_pdf];
Run Code Online (Sandbox Code Playgroud)

那么,我是否将文件保存在错误的位置?

文件是否在重启期间以某种方式移动?

对此问题的任何建议?

谢谢

ios

9
推荐指数
1
解决办法
1958
查看次数

如何在没有缩放模式的iPhone 6上显示iOS应用程序

这可能是一个模糊的问题,如果您需要截图,请告诉我.

我刚买了一部iPhone 6,我在"标准"变焦模式下设置了它.这使得所有文本,图标和Apple应用程序在手机上显示为"小".但是,所有其他应用程序(包括我的iOS 8优化应用程序和Facebook和Twitter等大牌应用程序)都以"放大"模式显示.当手机上的所有东西都变大时,包括时钟,电池电量,手机信号......等等,这是非常奇怪和分散注意力的.

有没有人知道如何强制第三方应用程序在手机处于标准模式时以标准模式显示,以及在手机放大时以放大模式显示?

ios iphone-6

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

Visual Studio 2015 Android NDK ARM体系结构

在Visual Studio 2015 Preview(目前是最新和最好的)中,您可以编译Android的C/C++代码.这会生成.a库(这是正确的).

在导出设置中,您可以导出ARM或x86.

但是,在常规Android NDK中,您必须定位armeabi或armeabi-v7a.

我无法找到任何答案的问题是Visual Studio 2015预览是否导出为armeabi或armeabi-v7a架构.

有谁知道VS 2015预览版导出的ARM架构是什么?

谢谢

android visual-studio android-ndk visual-studio-2015

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

Kotlin 的 @Parcelize 在 writeToParcel() 上抛出 NPE

我有这组数据类,都在同一个文件中:

@Parcelize data class Response(val RecordView: RecordView):Parcelable

@Parcelize data class RecordView(val Records: List<Records>):Parcelable

@Parcelize data class Gid(val Value: String):Parcelable

@Parcelize data class Features(val Fields: List<Fields>, val FeatureName: String, val Title: String):Parcelable

@Parcelize data class Fields(val Label: String, val Value: String, val FieldName: String, val Features: List<Features>):Parcelable

@Parcelize data class Records(val Gid: Gid, val ImageIds: List<String>, val Fields: List<Fields>, val Features: List<Features>):Parcelable
Run Code Online (Sandbox Code Playgroud)

然后我将Response对象作为下一个活动的意图发送:

val record = intent?.getParcelableExtra<Records>(RECORD)
Run Code Online (Sandbox Code Playgroud)

但是下一个活动会抛出这个:

java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.Collection.size()' on a null …
Run Code Online (Sandbox Code Playgroud)

android kotlin kotlin-extension kotlin-android-extensions

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

Google 结算消耗品和非消耗品

我需要在 Google 控制台中创建一个新的应用内购买。我看到的唯一 2 个选项是“托管产品”和“订阅”

在“托管产品”中,我只有 1 个“创建托管产品”选项。

但是,在Google 的文档中,它将一次性产品称为“消耗品”和“非消耗品”

物品的套装在哪里?我错过了这其中的哪一部分?

我们创建了一些受管理的产品,但似乎只能购买一次 - 我们想多次购买它们。

谢谢。

android in-app-purchase in-app-billing google-play google-play-services

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

Charles SSL 限制特定路径或 url

我让查尔斯工作了,我知道如何使用它。我之前已经对整个域进行了限制,但我需要限制特定的路径或网址。

作为参考,我可以限制这个:https://www.example.com

我想要限制的是:https://www.example.com/api

当我在 Charles 节流阀设置中输入 a 时,/它会抱怨 URL 无效,并且它没有像重写那样的“路径”字段。

是否有可能做到这一点?如果没有,对我可以用来限制移动应用程序流量的应用程序有什么建议吗?

谢谢!

throttling bandwidth-throttling charles-proxy

6
推荐指数
0
解决办法
277
查看次数

如何在Swift中初始化生成的Core Data NSManagedObject

我知道obj-​​c但我学得很快.

在obj-c中使用核心数据时,您可以对数据建模并告诉xcode生成模型的nsmanageobject子类.然后在代码中将其初始化为

#import MyObject
- (void) someMethod
{
    MyObject *my = (Card *) [NSEntityDescription insertNewObjectForEntityForName:@"Card" inManagedObjectContext:[self managedObjectContext]];

    my.name = @"some name";
}
Run Code Online (Sandbox Code Playgroud)

在swift中,我正在尝试做同样的事情,但我似乎无法弄清楚如何初始化我的自定义对象.这就是我所拥有的:

生成的NSManagedObject子类:

import Foundation导入CoreData

class Card: NSManagedObject
{
    @NSManaged var card_name: String
    @NSManaged var card_id: String
    @NSManaged var card_issuer: String
    @NSManaged var card_type: String
}
Run Code Online (Sandbox Code Playgroud)

然后我试图在另一个类上使用它,像这样:

var card : Card
card.card_name = "Some Name"
card.card_issuer = "HOA"
card.card_type = "Rec Center"
card.card_id =  "123"
Run Code Online (Sandbox Code Playgroud)

但我得到的错误是:

在初始化之前使用变量'card'

我显然错过了一步,但我无法指出它是什么.

另外,正如几位iOS教师提到的那样,你不应该混淆生成的NSManagedObject子类.

有什么建议?

编辑 我现在得到一个错误:(应该是一个新的SO问题...)

CoreData:警告:无法为实体'Card'加载名为'Card'的类.找不到类,而是使用默认的NSManagedObject.

以下是显示此类在构建阶段中如何存在以及实体名称是否已在xcdatamodeld文件中设置的屏幕截图 在此输入图像描述

在此输入图像描述 谢谢

core-data ios swift

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

带有Retrofit 1.9的SimpleXML,'属性'版本'在类中没有匹配'

我有一个我需要解析的XML(我无法控制XML或其格式):

<?xml version="1.0" encoding="UTF-8"?>
<Siri xmlns="http://www.siri.org.uk/siri" version="1.3">
<ResponseTimestamp>2016-01-27T21:49:18.6841619-07:00</ResponseTimestamp>
<VehicleMonitoringDelivery version="1.3">
  <ResponseTimestamp>2016-01-27T21:49:18.6841619-07:00</ResponseTimestamp>
  <ValidUntil>2016-01-27T21:49:28.6841619-07:00</ValidUntil>
  <VehicleActivity>
     <RecordedAtTime>2016-01-27T21:49:18.6841619-07:00</RecordedAtTime>
     <MonitoredVehicleJourney>
        <LineRef>750</LineRef>
        <DirectionRef>SOUTHBOUND</DirectionRef>
        <FramedVehicleJourneyRef>
           <DataFrameRef>2016-01-27T00:00:00-07:00</DataFrameRef>
           <DatedVehicleJourneyRef>2519014</DatedVehicleJourneyRef>
        </FramedVehicleJourneyRef>
        <PublishedLineName>FRONTRUNNER</PublishedLineName>
        <OriginRef>601084</OriginRef>
        <DestinationRef>801164</DestinationRef>
        <Monitored>True</Monitored>
        <VehicleLocation>
           <Longitude>-111.86847</Longitude>
           <Latitude>40.401028</Latitude>
        </VehicleLocation>
        <ProgressRate>1</ProgressRate>
        <CourseOfJourneyRef>18127</CourseOfJourneyRef>
        <VehicleRef>101</VehicleRef>
        <MonitoredCall>
           <StopPointRef>801160</StopPointRef>
           <VisitNumber>1</VisitNumber>
           <VehicleAtStop>false</VehicleAtStop>
        </MonitoredCall>
        <OnwardCalls>
           <OnwardCall>
              <StopPointRef>23076</StopPointRef>
              <VisitNumber>1</VisitNumber>
              <StopPointName>OREM CENTRAL STATION</StopPointName>
           </OnwardCall>
        </OnwardCalls>
        <Extensions>
           <LastGPSFix>2016-01-27T21:49:09.473</LastGPSFix>
           <Scheduled>False</Scheduled>
           <Bearing>137.91188191173691</Bearing>
           <Speed>76.7898894465909</Speed>
           <DestinationName>Provo</DestinationName>
        </Extensions>
     </MonitoredVehicleJourney>
  </VehicleActivity>
  </VehicleMonitoringDelivery>
</Siri>
Run Code Online (Sandbox Code Playgroud)

我有一个超级基础和剥离类车辆只有根元素,像这样:

import org.simpleframework.xml.Root;

@Root(name="VehicleActivity")
 public class Vehicle
{
    public Vehicle(){}
}
Run Code Online (Sandbox Code Playgroud)

在xml中,我只关心VehicleActivity标签内的数据.

当我尝试解析它时,从改造回调的成功方法,我得到错误Attribute 'version' does not have a match in …

java xml android simple-framework retrofit

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