脚本
我有一个应用程序,可以向用户发送通知.我最近在Xcode中更改了我的应用程序名称(关于你可以改变它的每一种方式,"Bundle Name","Product Name",你'命名'它......)然后将它们全部改回最终名称.
问题
现在,当我向手机发送通知时,它不会在通知中心的标题部分显示最终名称更改.相反,它显示了我更改它的旧名称.
图片(用红色圈出 - 这是显示旧名称的部分)

FYI
在"信息"选项卡下 - 字段,"分发名称"和"分发显示名称"都显示正确的最终名称更改.
在"构建设置"选项卡下 - 字段,"产品模块名称"和"产品名称"也显示正确的最终名称更改.
题
有谁知道这是一个错误还是有一个命名字段我没有改变这个?
我在 Xcode 中遇到了以前从未见过的错误消息。它提醒我无法保存项目,因为它已在 Xcode 外部进行了修改。但据我所知我没有修改它超出Xcode的范围。
我最近确实pod install更新了一些可可豆荚。据我所知,这将是对我的项目的唯一其他修改。那是在尝试“保存”之前的一段时间,所以我不确定这就是问题所在。
问题
我的项目怎么会在我不知情的情况下被修改,选择“ Keep Xcode Version”或“ Read From Disk”会产生什么不同的结果?
我正在编写一段代码,该代码NSManagedObject将从 CoreData 中获取一个s数组。在我的代码中使用 do catch 语句时,这样做似乎不正确,但这是我编写这行代码的最简单方法。
在任何其他情况下,当您使用该return语句时,您将跳出您所在的当前函数。并且您可以放心,您的函数中的其他代码将不会执行该return语句。我想知道这是否同样适用于 Swift 的do catch范式。
class func getAll() -> [MMNotification] {
let context = appDelegate.persistentContainer.viewContext
let fetchRequest = NSFetchRequest<MMNotification>(entityName: "MMNotification")
do {
return try context.fetch(fetchRequest)
}
catch {
// Will this 'catch' if the try fails,
// even if we said we are 'return'ing right before the 'try'?
return []
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,我正在获取存储在 CoreData 中的通知列表。在do块中,您可以看到有问题的代码行。
题
请问catch块执行,如果try失败之后,已经说明该函数应该return?
今年我在WWDC上观看了主题演讲,并对将所有新增功能添加到iOS 11感到非常兴奋.苹果公司在App Store中对游戏的高度重视以及iPad历史上最大的升级非常令人兴奋.但对我来说最令人兴奋的是,iOS 11将首次带来对iOS文件系统的一些嘲讽.他们Files自然称之为应用程序.这似乎是新用户从微软产品获得与iOS相同的类似Windows体验的一大进步.
我的问题虽然作为一个开发人员目前正在开发一个面向文档的项目,但我如何能够在我的设计中前瞻性地处理这种能力呢?我现在知道,documents如果您在.plist使用Application supports iTunes file sharing密钥时启用此功能,Apple允许您的应用程序通过iTunes向您的用户公开应用程序沙箱的目录.这对Files应用程序的工作方式是否相同?这意味着,将Files应用程序暴露documents你的设备上的所有应用程序,已在文件夹Application supports iTunes file sharing项设置为YES在应用程序的.plist?
脚本
我有一个带导航控制器的应用程序.当导航控制器将另一个控制器推到堆栈上时,在屏幕的左上角显示后退按钮"<(最后一个视图控制器的标题)".
我需要的
我需要像(伪代码)......
-(void)detectedBackButtonWasPushed {
NSLog(@"Back Button Pressed");
//Do what I need done
}
Run Code Online (Sandbox Code Playgroud)
题
因为此按钮是由导航控制器创建的,而我没有在故事板中创建此按钮,所以如何将后退按钮"连接"到这样的方法?
我曾为Oleg尝试过的例子
-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"notification"];
if (viewController == vc) {
NSLog(@"BACK BUTTON PRESSED");
}
}
Run Code Online (Sandbox Code Playgroud)
这是我应该怎么做的?因为这不起作用.
情景
我正在制作照片分享应用.该应用程序需要允许用户在将图像发送到服务器之前裁剪图像.我正在使用包含我希望用户裁剪的图像UIScrollView的UIImageView子视图.
我做了什么
我试图在StackOverflow上使用一些解决方案来做到这一点,但它们涉及UIScrollView在用户缩放后拍摄帧的屏幕截图.这不起作用的原因是因为当用户在iPhone 5(320x320,屏幕宽度上的完美正方形)上进行屏幕截图时,当该照片上传并显示在iPhone 6 Plus(更大的屏幕尺寸)上时,图像将像素化.
题
如何获得可能在3000x3000内放大UIScrollView的图像并提取图像(图像为UIScrollView320x320),但缩放到640x640 而不会丢失图像分辨率?
插图
我有一个用例,需要UIImage将其保存到文档目录 - 然后UIImage需要转换为PDF并保存到文档目录.
转换为PDF的代码
var filePath = NSString(string: self.selectedMedia!.imagePath!)
if FileManager().fileExists(atPath: filePath as String) {
filePath = filePath.deletingPathExtension as NSString
filePath = NSString(string: filePath.appendingPathExtension("PDF")!)
if let image = UIImage(data: self.selectedMedia?.image! as! Data) {
let rect:CGRect = CGRect(x: 0, y: 0, width: image.size.width, height: image.size.height)
UIGraphicsBeginPDFContextToFile(filePath as String, rect, nil);
UIGraphicsBeginPDFPageWithInfo(rect, nil);
UIGraphicsGetCurrentContext();
image.draw(in: rect)
UIGraphicsEndPDFContext();
self.selectedMedia?.imagePath = filePath as String
CoreData.save()
}
self.showPDFEditor()
}
else {
print("Missing File At Path \(filePath)")
}
Run Code Online (Sandbox Code Playgroud)
问题
FileManager说文件不存在.第一次执行此操作时, …
脚本
我有一个允许用户创建帐户的应用程序,但也允许用户删除其帐户.删除他们的帐户后,我有一个云代码功能,将删除用户所做的所有"发布".我正在使用的云代码是......
//Delete all User's posts
Parse.Cloud.define("deletePosts", function(request, response) {
var userID = request.params.userID;
var query = new Parse.Query(Parse.Post);
query.equalTo("postedByID", userID);
query.find().then(function (users) {
//What do I do HERE to delete the posts?
users.save().then(function(user) {
response.success(user);
}, function(error) {
response.error(error)
});
}, function (error) {
response.error(error);
});
});
Run Code Online (Sandbox Code Playgroud)
题
一旦我对所有用户的帖子进行了查询,我该如何删除它们?(见//What do I do HERE?)
脚本
我有一个应用程序,允许用户向上滚动UITableView来查看帖子.当它们向上滚动时,导航栏将隐藏.我使用以下SO帖子中的代码...
问题
当我在那里尝试第一个答案时,它第一次使用它,完美地工作.在我把它带到它正在工作的地方后,我试图让我的Tab Bar也下降.当我烦躁地使用我的代码时,我一定要搞砸了.因为现在当我运行相同的代码时,我得到的这个黑条不会消失.
未滚动(正常)

向上滚动(留下丑陋的黑条)

我也尝试了什么
GTScrollNavigationBar和TLYShyNavBar
而且他们都离开黑条也......
题
有谁知道如何解决这一问题?
场景:我有tableView很多单元格。每个单元格将包含一个 AVPlayer 来播放视频。一旦用户按下单元格上的播放按钮,就会创建 AVPlayer。我希望 AVPlayer 停止播放它的视频并完全在它的单元格移出屏幕时删除。
问题:当单元格移出屏幕时,媒体仍将播放。因此,当我尝试根据需要删除播放器时,我的应用程序会因错误而崩溃
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“AVPlayer 的实例无法删除由不同的 AVPlayer 实例添加的时间观察者。”
播放器是如何创建的:
(在单元格中)
-(void)addPlayer {
if (!self.player) {
// This is my custom init method
self.player = [[AVPlayer alloc] initWithFrame:self.container.bounds contentURL:mediaURL];
[self.player setUserInteractionEnabled:YES];
[self.container setUserInteractionEnabled:YES];
[self.container addSubview:self.player];
}
}
Run Code Online (Sandbox Code Playgroud)
如何添加 addTimeObserver:
-(void)beginObservingTime {
// This will monitor the current time of the player
__weak STPlayer *weakSelf = self;
self.observerToken = [self.player addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(1.0, NSEC_PER_SEC) queue:nil usingBlock:^ (CMTime time) {
if (CMTimeGetSeconds(time) > self.playbackTime) …Run Code Online (Sandbox Code Playgroud) ios ×8
xcode ×3
objective-c ×2
uitableview ×2
avplayer ×1
ios11 ×1
javascript ×1
return ×1
swift ×1
uiscrollview ×1
wwdc ×1