我想我错过了一些非常,非常明显和容易的东西,但是 - 我如何将2.1-app迁移到2.2?我需要复制什么或运行哪个脚本?
我在swift文件中编写了一个类:
class UtilityMethods {
class func userId() -> Integer {
...
}
class func setUserId(userId : Int) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
我正在导入-swift.h-header,它可以很好地编译,但是我不能使用
[UtilityMethods userId];
Run Code Online (Sandbox Code Playgroud)
在我的Objective-C代码中:
Unknown receiver 'UtilityMethods'; did you mean 'UtilMethods'?
UtilMethods是我要替换的Objective-C类。我想念什么吗?
编辑 在Lance的帮助下,现在可以识别该类,但是不幸的是,getter方法不是这样,头文件如下所示:
SWIFT_CLASS("_TtC15...14UtilityMethods")
@interface UtilityMethods : NSObject
+ (void)setUserId:(NSInteger)userId;
- (instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
Run Code Online (Sandbox Code Playgroud)
为什么吸气剂不见了?
我遇到的问题是,当应用程序在购买应用程序内消耗品后失去网络时,finishTransaction将无法工作。我正在打电话finishTransaction(仍然没有互联网连接),但下次应用程序启动时我正在设置
[[SKPaymentQueue defaultQueue] addTransactionObserver:...];
Run Code Online (Sandbox Code Playgroud)
系统会要求用户输入 App Store 密码。我的问题是我不知道他在这里到底买了什么。如果他在此处按“取消”,一切都很好,但如果用户输入密码,他就会被计费,但不会得到任何好处。所以我宁愿取消所有待处理的交易。
我已经尝试过
for (SKPaymentTransaction *transaction in [SKPaymentQueue defaultQueue].transactions) {
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}
Run Code Online (Sandbox Code Playgroud)
但[SKPaymentQueue defaultQueue].transactions这里是空的。除了取消所有待处理的交易之外,是否还有其他可能性可以防止用户被询问?
我收到了一些行动的通知; 现在,如果通知只有一个动作,则会显示带有a dismiss和options按钮的"警报视图" .按下选项时,我会"打开","我的行动"和"关闭".
如何避免选项菜单并从一开始就获得"解雇"和"我的行动"?
我正在谈论出现的警报,例如当您在iPhone主屏幕上并且您已选择警报样式"警报"为"解锁后的警报样式"
我只有一个动作定义了本地推送通知.现在我希望在主屏幕上收到通知,左边是"关闭",右边是我定义的操作.但相反,我得到了这个:


我希望避免额外的步骤,点击"选项",然后只有一个真正的选项.
我正在使用的代码:
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil) {
return;
}
localNotif.fireDate = [[NSDate date] dateByAddingTimeInterval:NOTIFICATION_DELAY];
localNotif.timeZone = [NSTimeZone defaultTimeZone];
localNotif.alertBody = text;
localNotif.soundName = UILocalNotificationDefaultSoundName;
localNotif.applicationIconBadgeNumber = 1;
localNotif.category = ERROR_CATEGORY;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
Run Code Online (Sandbox Code Playgroud)
注册推送通知:
UIMutableUserNotificationAction *callSupportAction = [self actionWithIdentifier:@"callSupportAction" title:NSLocalizedString(@"callSupportActionTitle", @"") background:YES destructive:NO authenticationRequired:NO];
UIMutableUserNotificationCategory *errorCategory = [self categoryWithIdentifier:ERROR_CATEGORY actions:@[callSupportAction]];
NSSet *categories = [NSSet setWithObjects:errorCategory, nil];
UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert; …Run Code Online (Sandbox Code Playgroud) 有没有办法跟踪有多少iOS用户拥有(和使用)Apple Watch?是通过Google Analytics自动跟踪还是我必须做些什么来实现这一目标?
我只是调试了一些客户遇到的错误,现在我偶然发现了一个奇怪的行为:根据charles代理,请求失败("远程服务器在发送响应头之前关闭了连接")但我的成功块被调用了.
这是一个已知的行为/问题吗?
我收到了来自单个用户的支持请求(~0.001%)该应用报告无法接收应用内购买产品.他们几个星期以来一直面临这个问题,所以这不仅仅是暂时的.他们告诉我,在他们的设备上没有关闭应用程序购买,他们安装了最新的稳定iOS.
什么可能导致一些用户的这些问题?
是否有可能并允许对iOS和Android的应用内购买进行A/B测试?我听说iOS不允许,但没有找到正式文件.
Android怎么样?
我想在后台同步执行一些代码,我真的认为这是可行的方法:
let queue = DispatchQueue.global(qos: .default)
queue.async {
print("\(Thread.isMainThread)")
}
Run Code Online (Sandbox Code Playgroud)
但这会打印,true除非我使用queue.async。async这是不可能的,因为代码将并行执行。如何实现在后台同步运行多个块?
我想要实现的目标是:将应用程序中的事件与设备日历同步,这发生在后台。可以从不同的地方多次调用执行此操作的方法,因此我想保持其顺序和在后台进行。
ios ×5
swift ×2
ab-testing ×1
afnetworking ×1
analytics ×1
apple-watch ×1
http-proxy ×1
objective-c ×1
swift3 ×1
uilabel ×1