_eq 似乎等于 self.assertEqual()
但是self.assertNotEqual()鼻子里还有吗?
谢谢
我利用分析器来查找内存泄漏并遇到了这个问题:

我切换到呼叫树.
所以我可以点击它以了解更多信息:

但它并没有真正给我任何线索.我怎么知道造成泄漏的原因?

更新:

我们的应用程序在应用程序启动(前景)时与我们的REST-API同步.这总是在我的iOS 7/iPhone 4S上运行.但是另一个开发者拥有iOS7/iPhone 5并且很少运行它不同步的问题.经过10天的观察和放置NSLogs,我们昨晚发现了这个:
Dec 15 03:18:58 appname[4801] <Warning>: A gateway to the host server is working via WWAN.
Dec 15 03:18:58 appname[4801] <Warning>: Syncing...
Dec 15 03:18:58 appname[4801] <Warning>: Eventname to be fired: f11-reachability
Dec 15 03:18:58 appname[4801] <Warning>: Sync event IOS_REACHABILITY reached.
Dec 15 03:18:58 appname[4801] <Warning>: Sync: IOS_SYNC_WITH_SERVER is true
Dec 15 03:18:58 appname[4801] <Warning>: Animating indicator...
Dec 15 03:18:58 appname[4801] <Warning>: Getting last timestamp: 1387003344.407783 then …Run Code Online (Sandbox Code Playgroud) 我正在运行最新的PRISM 4.2.不幸的是,文档中的Event Aggregator教程是通过Unity而不是MEF驱动的.我不能让它在MEF下运行.
App.xaml.cs
public partial class App : Application
{
[Import]
public IEventAggregator eventAggregator;
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
Bootstrapper bootstrapper = new Bootstrapper();
bootstrapper.Run();
}
}
Run Code Online (Sandbox Code Playgroud)
Bootstrapper.cs
public class Bootstrapper : MefBootstrapper
{
protected override DependencyObject CreateShell()
{
return new MainWindow();
}
protected override void InitializeShell()
{
base.InitializeShell();
App.Current.MainWindow = (Window)Shell;
App.Current.MainWindow.Show();
}
protected override void ConfigureAggregateCatalog()
{
base.ConfigureAggregateCatalog();
AggregateCatalog.Catalogs.Add(new AssemblyCatalog(this.GetType().Assembly));
}
protected override IModuleCatalog CreateModuleCatalog()
{
ModuleCatalog moduleCatalog = new ModuleCatalog();
return moduleCatalog;
}
} …Run Code Online (Sandbox Code Playgroud) FactoryBoy似乎总是在默认数据库中创建实例.但我有以下问题.
cpses = CanonPerson.objects.filter(persons__vpd=6,
persons__country="United States").using("global")
Run Code Online (Sandbox Code Playgroud)
代码指向global数据库.我还没有找到在工厂中指定数据库的方法:
class CanonPersonFactory(django_factory.DjangoModelFactory):
class Meta:
model = CanonPerson
django_get_or_create = ('name_first', 'p_id')
p_id = 1
name_first = factory.Sequence(lambda n: "name_first #%s" % n)
@factory.post_generation
def persons(self, create, extracted, **kwargs):
if not create:
# Simple build, do nothing.
return
if extracted:
# A list of groups were passed in, use them
for person in extracted:
self.persons.add(person)
Run Code Online (Sandbox Code Playgroud) 这是我的Firebase数据库结构:
ft-records
userX@gmail_com
2013-01-01 00:00:00 GMT
addedByUser: "userX@gmail.com"
notes: "Boooo"
time: "2013-01-01 00:00:00 GMT"
2013-01-02 10:00:00 GMT
addedByUser: "userX@gmail.com"
notes: "Yeaah"
time: "2013-01-02 10:00:00 GMT"
userY@gmail_com
2013-01-01 03:00:00 GMT
addedByUser: "userY@gmail.com"
notes: "Ok"
time: "2013-01-01 03:00:00 GMT"
Run Code Online (Sandbox Code Playgroud)
我可以为经过身份验证的用户查询此数据,例如userX @ gmail_com
let userRecords = self.ref.child(self.user.email.replacingOccurrences(of: ".", with: "_", options: .literal, range: nil))
userRecords.queryOrdered(byChild: "time").queryStarting(atValue: startOfDayDateString).queryEnding(atValue:endOfDayDateString).observe(FIRDataEventType.value, with: { snapshot in ... } )
Run Code Online (Sandbox Code Playgroud)
但是,如果我想查询所有用户在特定日期的所有笔记,我该如何实现?
我需要以某种方式使用通配符从根读取所有孩子,然后按每个孩子的时间查询.但我不知道该怎么做.
我可以这样做吗?
let ref = FIRDatabase.database().reference(withPath: "ft-records/*")
Run Code Online (Sandbox Code Playgroud) 我对如何测试我保存和迁移数据的方法有些困惑。我为我的单元测试创建了第二个 Firebase 项目(尽管这并不理想)。
这是我的测试之一:
func testMigratenOfFiveEvents() {
var done = false
let ref = FIRDatabase.database().reference()
createFTEvents(amount: 5)
let events = MockDatastore.shared.eventsForLife()
FIRUtil.migrateEventsToFirebase(ftevents: events!)
let userRecords = ref.child("ft-records").child("test@gmail_com")
userRecords.queryOrdered(byChild: "time").observe(FIRDataEventType.value, with: { snapshot in
var i = 0
for item in snapshot.children {
i = i + 1
let event = Event(snapshot: item as! FIRDataSnapshot)
XCTAssertEqual(event.notes, "hello" + String(i))
}
done = true
})
waitUntil(timeout: 5, predicate: {done})
}
func waitUntil(timeout: TimeInterval, predicate:((Void) -> Bool)) {
let timeoutTime = NSDate(timeIntervalSinceNow: timeout).timeIntervalSinceReferenceDate …Run Code Online (Sandbox Code Playgroud) 我目前正在使用沙盒用户开发和测试我的应用.即使事务已经完成,当我尝试时Restore Purchases,我从队列中获得了多达32个旧事务.
基本上我想提醒它,Your purchase is being restored. Upon completion this dialog will close.并在它完成时解雇它.
private func showRestoreInProgressAlert() {
let alert = UIAlertController(title: "Restoring Purchase", message: "Your purchase history is being restored. Upon completion this dialog will close.", preferredStyle: .alert)
present(alert, animated: true, completion: nil)
NotificationCenter.default.addObserver(self, selector: #selector(dismissRestoreInProgressAlert(notification:)), name: SubscriptionService.restoreSuccessfulNotification, object: nil)
}
Run Code Online (Sandbox Code Playgroud)
您可以从下面识别此方法SKPaymentTransactionObserver.一旦.restoreSuccessfulNotification发送通知,警报将按预期被解除.但由于队列中有32个事务,弹出窗口不断出现并消失32次.
func handleRestoredState(for transaction: SKPaymentTransaction, in queue: SKPaymentQueue) {
print("Purchase restored for product id: \(transaction.payment.productIdentifier)")
queue.finishTransaction(transaction)
SubscriptionService.shared.uploadReceipt { (success) in
DispatchQueue.main.async …Run Code Online (Sandbox Code Playgroud) 我是 Android 开发的新手,也许这很明显是我所缺少的。我已从 i7 切换到 Apple M1,并且在构建项目时出现错误:
Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
> java.lang.reflect.InvocationTargetException (no error message)
Run Code Online (Sandbox Code Playgroud)
我已经运行它然后./gradlew clean build似乎这是问题:
java.lang.NoSuchMethodError: 'void kotlin.jvm.internal.FunctionReferenceImpl
通过安装的Javabrew install java是:
openjdk version "15.0.1" 2020-10-20
OpenJDK Runtime Environment (build 15.0.1+9)
OpenJDK 64-Bit Server VM (build 15.0.1+9, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)
相同的设置似乎在 MacBook Pro i7 上运行良好。请问这是否与Apple M1 CPU有关?
构建.gradle:
buildscript {
ext.kotlin_version = '1.4.21'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath …Run Code Online (Sandbox Code Playgroud) 我想创建一个自定义 DNS,以将 CloudFlare 1.1.1.1 和 1.0.0.1 用于我的所有 RetroFit 连接。这应该取代系统 DNS。
所以我这样做了:
import okhttp3.Dns
import java.net.InetAddress
class CustomDns : Dns {
override fun lookup(hostname: String): List<InetAddress> {
TODO("Not yet implemented")
}
}
Run Code Online (Sandbox Code Playgroud)
我对如何实现抽象查找功能有点迷失。
文档说:
返回主机名的 IP 地址,按照 OkHttp 尝试的顺序排列。如果与某个地址的连接失败,OkHttp 将重试与下一个地址的连接,直到建立连接、IP 地址集耗尽或超出限制。abstract fun Lookup(hostname:String):List
这是否意味着我创建了一个 HashMap。键将是我的 API 的域,值将包含我的 API 解析到的 IP 地址列表?对我来说似乎不太合适。
有没有办法在此实现中仅使用 1.1.1.1 作为 DNS 解析器?
自从我改用 M1 以来,事实证明在模拟器上运行该应用程序是不可能的。在设备本身上它工作正常。
我收到构建错误:Cannot find 'Analytics' in scope
import Firebase
class AlertService: AlertServiceBase, AlertServiceProtocol {
func showWarningAlert(dict: NSDictionary) {
...
Analytics.logEvent("blocked_no_more_warning", parameters: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
我与一位 Apple 工程师交谈,他说将所有 Pods 架构更改为Standard Architectures (arm64, armv7) - $(ARCHS_STANDARD).
它对进一步取得进展有所帮助,但随后在 Firebase 分析问题上失败了。他建议将问题发布到 SO 上。希望以前有人经历过这个。谢谢