小编Ash*_*lls的帖子

核心数据轻量级迁移:无法查找或自动推断迁移的映射模型

所以我创建了一个新版本的数据模型,并使之前的可选字段非可选(给它一个默认值).根据文档,这应该意味着我的迁移符合轻量级自动迁移的条件.

我还添加了允许这样做的选项,当我打开商店时,也按照文档:

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:

[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,

[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
Run Code Online (Sandbox Code Playgroud)

但是,当我的应用程序启动时,我收到以下错误:

"无法找到或自动推断迁移的映射模型".

有谁知道这里的问题是什么?任何帮助表示赞赏...谢谢!

iphone core-data core-data-migration ios mapping-model

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

我如何使用极乐世界项目?

CodePlex上的Elysium项目看起来很有趣.一个问题.我无法弄清楚如何使用它.我只能假设用户知道他或她在做什么.我显然不是.我从这里下载Debug Binary .它有一个用于加载文件的批处理文件,它看起来运行没有错误.但我无法弄清楚从哪里开始.当我打开Blend时,我看不到任何模板或主题.有人可以帮忙吗?

谢谢

c# wpf themes expression-blend

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

UIActivityViewController excludeActivityTypes 不适用于自定义 UIActivityTypes

我在排除 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 种自定义类型(M​​essenger 和 Telegraph)

有趣的是,activityTypecompletionWithItemsHandler选择我试图排除的 2 个中的任何一个时检查显示它们确实具有上述原始值。

可以UIActivityType排除customs吗?有没有想过我缺少什么?

ios uiactivityviewcontroller

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

金属混合模式

这是我在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)

swift metal metalkit

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

播放(非库)Apple Music内容-请求失败

我正在尝试使用以下代码播放专辑…

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

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

ios 7 bottomLayoutGuide with uitabbarcontroller

我试图使用bottomLayoutGuideios7中的介绍将标签的底部锚定到tabbar的顶部.它最初在我运行应用程序时起作用,但是当我切换到另一个选项卡并再次返回时,标签移动到半透明的tabbar后面(被锚定到视图的底部).

viewDidLayoutSubviews在选项卡的viewcontroller中添加了一个日志,并bottomLayoutGuide.length在相应的选项卡切换回后重置为0.

我的viewcontroller是一个孩子UITabBarController.

我做错了什么或者这是ios7中的错误?这在模拟器和设备中都会发生.

uitabbarcontroller uitabbar ios ios7

6
推荐指数
1
解决办法
761
查看次数

UITableViewCell外观不会改变textLabel字体

我的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)

它确实将字体更改为我想要的字体.

有任何想法吗?

appearance uitableview uikit ios

6
推荐指数
1
解决办法
2234
查看次数

Swift:可选的数组计数

在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.

这是正确的方法吗?还是有更简单的东西?

arrays optional swift

6
推荐指数
2
解决办法
2万
查看次数

在iCloud中重命名UIDocument

我正在努力弄清楚如何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)

ios icloud uidocument ios11

6
推荐指数
1
解决办法
552
查看次数

在NSObject中玩NSSound(带有Objective-C的Mac App)

我正在制作一款需要播放音乐的游戏.为了使我的代码更易于管理,我想制作一个能够处理声音的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(如果不是,为什么?),如果是这样,如何编辑代码以使其有效?它会使我的代码看起来不那么混乱;)

cocoa objective-c nssound nsobject

6
推荐指数
1
解决办法
156
查看次数