所以我创建了一个新版本的数据模型,并使之前的可选字段非可选(给它一个默认值).根据文档,这应该意味着我的迁移符合轻量级自动迁移的条件.
我还添加了允许这样做的选项,当我打开商店时,也按照文档:
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
Run Code Online (Sandbox Code Playgroud)
但是,当我的应用程序启动时,我收到以下错误:
"无法找到或自动推断迁移的映射模型".
有谁知道这里的问题是什么?任何帮助表示赞赏...谢谢!
我在排除 custom UIActivityTypes 时遇到问题UIActivityViewController
我有…
extension UIActivityType {
static let fbMessenger = UIActivityType("com.facebook.Messenger.ShareExtension")
static let telegram = UIActivityType("ph.telegra.Telegraph.Share")
}
Run Code Online (Sandbox Code Playgroud)
进而
let activityController = UIActivityViewController(activityItems: <sharingItems>, applicationActivities: nil)
activityController.excludedActivityTypes = [.postToFacebook, .fbMessenger, .telegram]
present(activityController, animated: true)
Run Code Online (Sandbox Code Playgroud)
使用上面排除的类型,显示的共享表正确排除了 Facebook,但仍显示 2 种自定义类型(Messenger 和 Telegraph)
有趣的是,activityType在completionWithItemsHandler选择我试图排除的 2 个中的任何一个时检查显示它们确实具有上述原始值。
可以UIActivityType排除customs吗?有没有想过我缺少什么?
这是我在OpenGL中使用的两种混合模式,即IOS中对金属的转换
glEnable(GL_BLEND);
glBlendFuncSeparate(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA,GL_ONE,GL_ONE_MINUS_SRC_ALPHA);
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE, GL_SRC_ALPHA, GL_ONE);
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下代码播放专辑…
let predicate = MPMediaPropertyPredicate(value: "1459938538", forProperty: MPMediaItemPropertyAlbumPersistentID)
let iCloudPredicate = MPMediaPropertyPredicate(value: true, forProperty: MPMediaItemPropertyIsCloudItem)
let query = MPMediaQuery.albums()
query.filterPredicates = [predicate, iCloudPredicate]
let mp = MPMusicPlayerController.applicationMusicPlayer
mp.setQueue(with: query)
mp.play()
Run Code Online (Sandbox Code Playgroud)
但是它失败了
[SDKPlayback] -[MPMusicPlayerController prepareToPlay] timeout
[MediaRemote] MRC <MPCPlayerPath: route=<MPAVEndpointRoute: 0x280f1a280 name=iPhone uid=LOCAL> origin=iPhoneID bundleID=com.apple.MediaPlayer.RemotePlayerService playerID=MPMusicPlayerApplicationController>: Undo optimistic state [failed] command=Play error=Error Domain=MPCPlayerRequestErrorDomain Code=1000 "Failed to send command 0 (MRMediaRemoteCommandHandlerStatus = 1)" UserInfo={NSDebugDescription=Failed to send command 0 (MRMediaRemoteCommandHandlerStatus = 1), MPCPlayerErrorKeyMediaRemoteCommandHandlerStatus=1}
[SDKPlayback] -[MPMusicPlayerController play] completed error: Error Domain=MPCPlayerRequestErrorDomain Code=1000 "Failed to …
mpmusicplayercontroller mpmediaquery ios swift apple-musickit
我试图使用bottomLayoutGuideios7中的介绍将标签的底部锚定到tabbar的顶部.它最初在我运行应用程序时起作用,但是当我切换到另一个选项卡并再次返回时,标签移动到半透明的tabbar后面(被锚定到视图的底部).
我viewDidLayoutSubviews在选项卡的viewcontroller中添加了一个日志,并bottomLayoutGuide.length在相应的选项卡切换回后重置为0.
我的viewcontroller是一个孩子UITabBarController.
我做错了什么或者这是ios7中的错误?这在模拟器和设备中都会发生.
我的didFinishLaunchingWithOptions函数中有以下代码:
[[[UITableViewCell appearance] textLabel]setFont:[UIFont fontWithName:@"someFont" size:12]];
Run Code Online (Sandbox Code Playgroud)
但由于某些原因,这不会改变我的表格单元格中的文本.
如果在表中委托函数cellForRowAtIndexPath我添加
cell.textLabel.font = [UIFont fontWithName:@"someFont" size:12];
Run Code Online (Sandbox Code Playgroud)
它确实将字体更改为我想要的字体.
有任何想法吗?
在Objective-C中,如果我有以下属性:
@property (strong, nonatomic) NSArray * myArray;
Run Code Online (Sandbox Code Playgroud)
返回多个对象的myArray方法如下所示:
- (NSInteger) numberOfObjectsInMyArray
{
return [self.myArray count];
}
Run Code Online (Sandbox Code Playgroud)
这将返回数组中对象的数量,或者返回0 myArray == nil;
在Swift中我能想到的最好的等价物是:
var myArray: Array<String>?
func numberOfObjectsInMyArray() -> Int
{
return myArray ? myArray!.count : 0
}
Run Code Online (Sandbox Code Playgroud)
因此,检查可选数组包含一个值,如果是,则解包该数组并返回该值,否则返回0.
这是正确的方法吗?还是有更简单的东西?
我正在努力弄清楚如何UIDocument在iCloud文件夹中重命名子类的实例.我尝试使用新网址保存文档...
func renameDocument(to name: String) {
let targetURL = document.fileURL.deletingLastPathComponent().appendingPathComponent(name)
.appendingPathExtension("<extension>")
document.save(to: targetURL, for: .forCreating) { success in
guard success else {
// This always fails
return
}
// Success
}
}
Run Code Online (Sandbox Code Playgroud)
......但这失败了......
Error Domain=NSCocoaErrorDomain Code=513 "“<new-file-name>” couldn’t be moved because you don’t have permission to access “<folder>”."UserInfo={NSSourceFilePathErrorKey=/private/var/mobile/Containers/Data/Application/1A9ACC2B-81EF-4EC9-940E-1C129BDB1914/tmp/(A Document Being Saved By My App)/<new-file-name>, NSUserStringVariant=( Move ), NSDestinationFilePath=/private/var/mobile/Library/Mobile Documents/com~apple~CloudDocs/<folder>/<new-file-name>, NSFilePath=/private/var/mobile/Containers/Data/Application/1A9ACC2B-81EF-4EC9-940E-1C129BDB1914/tmp/(A Document Being Saved By My App)/<new-file-name>, NSUnderlyingError=0x1c4e54280 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}
......而且只是一个简单的举动......
func renameDocument(to name: …Run Code Online (Sandbox Code Playgroud) 我正在制作一款需要播放音乐的游戏.为了使我的代码更易于管理,我想制作一个能够处理声音的NSObject(如淡入淡出,播放播放列表中的声音等).我有这个代码:
NSSound *music = [[NSSound alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:self.filename ofType:self.fileExtention] byReference:NO];
[music play];
Run Code Online (Sandbox Code Playgroud)
当我将它放在AppDelegate.m文件中时,此代码可以工作,但是当我将它放在New NSObject类中时它不起作用.
NSObject类中的代码(名为Music):
- (void)playMusic:(NSString *)fileName ofType:(NSString *)type
{
NSSound *music = [[NSSound alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:self.filename ofType:self.fileExtention] byReference:NO];
[music play];
NSLog(@"Works!");
}
Run Code Online (Sandbox Code Playgroud)
我在AppDelegate.m中使用此代码调用该方法:
[[[Music alloc] init] playMusic:self.fileName ofType:self.extension];
Run Code Online (Sandbox Code Playgroud)
执行此操作时,它会记录"Works!" 这意味着代码被执行.
所以完全相同的代码在AppDelegate中工作,但在NSObject类中不起作用.有没有人知道是否可以在NSObject类中播放NSSound(如果不是,为什么?),如果是这样,如何编辑代码以使其有效?它会使我的代码看起来不那么混乱;)
ios ×6
swift ×3
appearance ×1
arrays ×1
c# ×1
cocoa ×1
core-data ×1
icloud ×1
ios11 ×1
ios7 ×1
iphone ×1
metal ×1
metalkit ×1
mpmediaquery ×1
nsobject ×1
nssound ×1
objective-c ×1
optional ×1
themes ×1
uidocument ×1
uikit ×1
uitabbar ×1
uitableview ×1
wpf ×1