小编Avi*_*Avi的帖子

iOS编程 - 如何发现从哪个(国家/地区)应用商店下载应用

正如iOS开发人员所知,您只能为应用商店中的应用和应用内商品设置一个价格等级.但是,您可以(理论上)将其作为具有不同价格的不同国家/地区的单独应用程序发布.我想对相同应用的应用内商品做同样的事情 - 定义替代的应用内商品,并根据用户的国家/地区控制应用在应用中的展示率.我不想使用NSLocale或NSTimeZone,因为它们可以在设置中更改.我想知道应用商店/用户所连接的国家/地区.

例如,我想为大多数用户提供自动续订订阅,但我知道自动续订订阅在以色列应用商店中不可用,因此我想向以色列用户显示不续订订阅,而不是向他们展示自动更新的一个.有没有可靠的方法来实现这一目标?

谢谢,Avi

country app-store in-app

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

iOS - 是否可以从蓝牙麦克风录制并接收遥控事件?

我正在开发一个监听语音命令的应用程序,通过遥控器(Airpods或有线耳机)开始/停止收听语音命令的方式.我用AVAudioSession和尝试了各种AVAudioSession选项,AVAudioSessionCategoryRecord并得到以下结果:

每当默认输入是蓝牙(Airpod)麦克风(AVAudioSessionCategoryPlayAndRecord)时,应用程序不会接收远程控制事件.只要默认输入是内置麦克风或有线耳机,应用程序就会接收远程控制事件.

有谁知道是否可以启用蓝牙麦克风并接收遥控事件?

我在iOS 11.0.1和11.0.3上测试过.

microphone remote-control ios

7
推荐指数
0
解决办法
136
查看次数

BLoC 模式最佳实践 - 在 BLoC 类中存储数据是否合法?

我是 Flutter 和 BLoC 设计模式的新手。然而,BLoC 的概念看起来很简单,我想我很好理解。

有时,在查看我同事的代码时,我发现在实现 BLoC 时,他们倾向于将数据存储在 BLoC 类中。我相信这是错误的,数据属于状态类。如果需要在可以创建状态之前将其传递或存储在某处,则应将其存储在触发更改的事件实例中,而不是 BLoC 本身。

我的理解是 BLoC 类是一个状态机,其唯一目的是将事件映射到状态并且除了定义的“状态”类之外没有其他状态。这是关注点分离 - 事件类应该存储触发更改的数据,状态类应该存储更改后的数据,并且 BLoC 应该处理操作该数据并将其从事件映射到状态。

如果将数据存储在 BLoC 类中,状态机将其功能从 更改(event, state0) => state1(event, state0, blocData) => state1。很明显,如果你想对你的 BLoC 进行单元测试,你的测试的复杂性会增加,因为你需要测试用例|event| X |state| X |blocData|而不是用|event| X |state|例(意味着每种类型的可能值数量的笛卡尔乘法)。可以声称它并没有真正影响可能值的数量,因为我们只会移动blocDatastate. 但是,我的主张是,如果将数据封装在一起,通常会发现它们是相互依赖的,有些组合是无关紧要的,但是只有在将它们封装在一起时才能保持这种依赖关系,或者至少在封装在一起时才能保护它不被破坏.

另一个原因是,查看状态并发送事件的应用程序代码可能会产生不确定的结果。这是因为 BLoC 实例具有影响其功能的“脏”状态。

我想听听在这种设计模式方面有更多经验的开发人员的意见。如果您可以发布一些有关此问题的文章的参考资料,那也很棒。我没有找到有关此问题的任何具体信息。

bloc

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

Android数据绑定 - 我可以访问布局XML中的封闭活动吗?

我想在XML中定义一个完成封闭活动的事件监听器,如下所示:

<EditText
    android:id="@+id/finish"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:imeOptions="actionDone"
    android:inputType="text"
    android:onEditorAction="@{() -> activity.finish()}" />
Run Code Online (Sandbox Code Playgroud)

但是,我没有提到封闭活动.我知道我可以使用a传递它<variable>,但Activity似乎是一个太常见的变量,无法在每个布局中显式传递...我认为数据绑定是为了简化代码而引入的.我没有在ViewDataBinding类中找到任何提示.

xml data-binding android android-activity

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