小编esb*_*enr的帖子

iphone通知导致"无法识别的选择器发送到实例..."

为了简短起见,我NSNotificationClassA(in viewDidLoad)中注册了以下监听器:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playSong) name:@"playNotification" object:nil];
Run Code Online (Sandbox Code Playgroud)

我有选择器声明ClassA.h:

- (void)playSong:(NSNotification *) notification;
Run Code Online (Sandbox Code Playgroud)

实施如下:

- (void)playSong:(NSNotification *) notification {
    NSString *theTitle = [notification object]; 
    NSLog(@"Play stuff", theTitle);
}
Run Code Online (Sandbox Code Playgroud)

ClassB(在tableView:didSelectRowAtIndexPath:方法中)我有:

NSInteger row = [indexPath row];
NSString *stuff = [playlistArray objectAtIndex:row];
[[NSNotificationCenter defaultCenter] postNotificationName:@"playNotification" object:stuff];
Run Code Online (Sandbox Code Playgroud)

最后都会收到一条错误消息:

"无法识别的选择器发送到实例"

playSong调用方法之前.

有人可以帮帮我吗?从一个控制器向另一个控制器发布通知时我忘记了什么?

iphone objective-c nsnotificationcenter ios

13
推荐指数
1
解决办法
8947
查看次数

使用Asp.Net,RavenDB和OAuth支持进行身份验证

建立一个也需要API的网站,因此(可能)OAuth支持登录我对如何处理用户和身份验证部分存在疑问.

所以我有一个带有RavenDB的ASP.NET MC4应用程序.

什么是最好的方法?

  • 要使用RavenDB的成员资格提供程序之一并在API部分中单独处理Oauth?防爆.格里芬的解决方案在这里.

  • 或者制作一个自定义解决方案,重新实现成员资格废话并支持OAuth.

我不确定从哪里开始,对于如何做到这一点的任何建议表示赞赏.

api membership-provider ravendb oauth-2.0 asp.net-mvc-4

9
推荐指数
1
解决办法
1078
查看次数

处理CloudKit中的多对多关系

我正在尝试使用CloudKit创建标记系统.我有一个名为Article的类型和一个名为Tag的标签类型.每篇文章都可以应用多个标签.我希望我的数据能够正常化,因为相同的标签可以出现在几篇文章中,文章可以有多个标签,我需要一个多对多的关系.在旧式的DB-stuff中,这需要一个联结表.

你是如何在CloudKit中做到的?

在任何Apples文档中,我只能找到一对多关系的示例.

所以我创建了一个名为ArticleTag的联结表类型,它包含两个CKReferences.一个用于文章参考,一个用于标记参考.

这应该有效,但每篇文章查询标签的最佳方法是什么?

亲切的问候,埃斯本

many-to-many ios cloudkit

5
推荐指数
1
解决办法
1503
查看次数

从管理器 - >开发人员配置文件中删除/删除开发者身份

我偶然将我的同事的开发人员身份导出并导入Xcode Organizer.选择开发者档案会列出我和我的同事.这导致警告:

检查依赖项

[BWARN]代码签名警告:代码签名身份'iPhone Developer'匹配多个身份:'iPhone Developer:[me]','iPhone Developer:[my colleague]' - 'iPhone Developer:[me]'将被使用.

如何从项目/组织者中删除或删除他的身份?没有控制+点击.

这也导致有两个相同的配置文件(我怀疑第二个属于我同事的开发者身份).因此,如果我删除配置文件及其证书,我可能会摆脱他的开发人员身份.但是:我无法确定哪个配置文件属于哪个开发人员标识,因为我无法在任何地方看到身份标识.谁知道在哪里找到它?

iphone xcode build xcode4

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

iPhone:自定义标签栏没有糟糕的更多菜单

所以我想构建一个包含5个以上项目的tabbar,并且可以滚动并找到这篇文章.通过继承UITabBarController并隐藏现有的tabbar轻松完成:

for(UIView *view in self.view.subviews)
{
    if([view isKindOfClass:[UITabBar class]])
    {
        view.hidden = YES;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我只是添加一个UIScrollView并根据tabbarcontroller的items-collection抛出一些按钮.

int i = 0;
for (UITabBarItem *item in self.tabBar.items)
{
    UIView *tab = [[[UIView alloc] initWithFrame:CGRectMake(i*60, 0, 60, 60)] autorelease];

    UIButton *btn = [[[UIButton alloc] initWithFrame:CGRectMake(7.5, 1, 45, 45)] autorelease];
    [btn setImage:item.image forState:UIControlStateNormal];
    btn.tag = i;
    [btn addTarget:self action:@selector(didSelectTabrBarItem:) forControlEvents:UIControlEventTouchUpInside];
    [tab addSubview:btn];

    [self.scrollView addSubview:tab];
    i++;

    if(self.selectedViewController == nil)
        [self setSelectedIndex:0];
}
Run Code Online (Sandbox Code Playgroud)

我重写了setSelectedindex/ViewController,因为我需要一些额外的绘图.

-(void)setSelectedViewController:(UIViewController *)selectedViewController
{
    [super setSelectedViewController:selectedViewController];
    [self startTimer];
}

-(void)setSelectedIndex:(NSUInteger)selectedIndex …
Run Code Online (Sandbox Code Playgroud)

iphone uitabbarcontroller uitabbar

3
推荐指数
1
解决办法
5592
查看次数

Swift 包管理器 - 无法解析清单

我正在尝试将 CocoaPod 迁移到 SPM。它应该非常简单,但由于某种原因,我不断收到错误“无法解析清单文件”。

可以在这里找到带有库的存储库:https ://github.com/agcoesbenr/RBSManager/tree/swift-package-manager

// swift-tools-version:5.1
import PackageDescription

let package = Package(
    name: "RBSManager",
    platforms: [
        .iOS(.v10),
    ],
    products: [
        .library(
            name: "RBSManager",
            targets: ["RBSManager"])
    ],
    dependencies: [
        .package(url: "https://github.com/daltoniam/Starscream.git", from: "3.1.1"),
        .package(url: "https://github.com/tristanhimmelman/ObjectMapper.git", from: "4.2")
    ],
    targets: [
        .target(
            name: "RBSManager",
            dependencies: ["Starscream", "ObjectMapper"],
            path: "./RBSManager/Classes")
    ]
)
Run Code Online (Sandbox Code Playgroud)

manifest swift swift-package-manager

3
推荐指数
1
解决办法
2705
查看次数

在字典上使用 GetValueOrDefault(...) 函数,默认值是始终执行还是仅在结果为 null 时执行?

我有一个缓存字典,并且 GetValueOrDefault(...) 非常适合这种情况。

var myThing = _cache.GetValueOrDefault("key", new Thing());
Run Code Online (Sandbox Code Playgroud)

我在文档中找不到默认值是否始终执行或仅在字典解析为空时执行。这很重要,因为在我的例子中,构建 Thing 会对性能产生重大影响(它是一个游戏),并且我只想在必要时构建它。

c# performance dictionary

3
推荐指数
1
解决办法
205
查看次数