小编Ron*_*Ron的帖子

Swift:实例化符合协议的类(AnyClass)

我想实现类似"registerClassForAction"的东西.为此,我定义了一个协议:

@objc protocol TestProt {
    func testMe() -> String
}
Run Code Online (Sandbox Code Playgroud)

我们来做一个班级宣言:

class TestClass: NSObject, TestProt {
    func testMe() -> String {
        return "test"
    }
}
Run Code Online (Sandbox Code Playgroud)

我定义了在另一个类中注册对象的函数:

func registerClassForAction(aClass: AnyClass) { ... }
Run Code Online (Sandbox Code Playgroud)

切换到REPL,我将模拟寄存器方法:

let aClass: AnyClass = TestClass.classForCoder() //or .self
let tClass = aClass as NSObject.Type
let tInst = tClass() as TestProt
tInst.testMe()
Run Code Online (Sandbox Code Playgroud)

这当前有效,但有另一种实例化tClass的方法,除了

let tClass = aClass as NSObject.Type
Run Code Online (Sandbox Code Playgroud)

问的原因,我想探索摆脱NSObject的机会所以我的TestClass不会继承NSObject.考虑了委托,但我想控制tInst的生命周期,并能够在特定时间点解除它.

谢谢你的帮助

罗恩

protocols instantiation swift

11
推荐指数
1
解决办法
3616
查看次数

如何在激活搜索栏时显示searchResultsTableView?

我正在实现一个UISearchDisplayController,我想searchResultsTableView在加载文本之前填充tableView(未过滤)的内容 - 在输入文本之前.

这在我开始在searchBar中输入值时有效.

- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller {
    self.isSearching = YES;

    //tell the searchDisplayTableView to show here!

    [controller.searchBar setShowsCancelButton:YES animated:YES];
}

- (void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller {
    self.isSearching = NO;
    [controller.searchBar setShowsCancelButton:NO animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

有人会指出正确的方向吗?

请不要回答"不要那样做"或"Apple没有设计控制方式".要么 ...

uisearchdisplaycontroller ios

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

使用Swift的MKPolygon(在调用中参数'interiorPolygons'缺少参数)

各位开发者,我正在尝试在mapview上实现多边形叠加,如下所示:

private func drawOverlayForObject(object: MyStruct) {
    if let coordinates: [CLLocationCoordinate2D] = object.geometry?.coordinates {
        let polygon = MKPolygon(coordinates: coordinates, count: coordinates.count)
        self.mapView.addOverlay(polygon)
    }
}
Run Code Online (Sandbox Code Playgroud)

出现以下错误:

在调用中缺少参数'interiorPolygons'的参数

根据文件: Apple Docu:

可变指针

当函数声明为接受UnsafeMutablePointer参数时,它可以接受以下任何一项:

  • nil,作为空指针传递
  • UnsafeMutablePointer值
  • 一个输入输出表达式,其操作数是类型为Type的存储左值,它作为左值的地址传递
  • 输入输出[类型]值,作为指向数组开头的指针传递,并在调用期间延长寿命

现在我认为我的方法是正确的,提供[CLLocationCoordinate2D]数组.有没有人遇到同样的问题,并找到了解决方法?

谢谢罗尼

mkpolygon ios7 swift ios8

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

GoogleMobileAds.framework:捆绑包格式无法识别,无效或不适合

我正在尝试在iOS应用中测试admob集成.我手动添加了框架:

  1. 嵌入式二进制文件
  2. 链接的框架和库
  3. 嵌入框架

我也禁用了位代码,因为Google的框架是在没有的情况下构建的.到现在为止还挺好.

出现以下错误:

/ usr/bin/codesign --force --sign [...]/internal/googleads-mobile-ios-examples/Swift/admob/BannerExample/build/Release-iphoneos/BannerExample.app/Frameworks/GoogleMobileAds.framework:

>捆绑包格式无法识别,无效或不适合命令

/ usr/bin/codesign失败,退出代码为1

code-signing admob xcode7

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

使用ARC在self.managedObjectContext上调用perfromBlock时保留循环?

在下面的代码中,我是否正确理解了保留周期问题并且是否会有保留周期?

- (NSError *)importRoute:(NSDictionary *)route {
    [self.importContext performBlockAndWait:^{
        [NSEntityDescription insertNewObjectForEntityForName:@"Entity" inManagedObjectContext:self.importContext];
        //do I get a retain cycle here?
    }];
    ...
}

- (NSManagedObjectContext *)importContext {
    if (!_importContext) {
        id appDelegate = [[UIApplication sharedApplication] delegate];
        _importContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
        _importContext.parentContext = [appDelegate managedObjectContext];
    }
    return _importContext;
}
Run Code Online (Sandbox Code Playgroud)

memory-management objective-c automatic-ref-counting retain-cycle

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

openssl base64和PHP base64_encode的不同结果

我试图在PHP和openssl中使用base64编码一个字符串.

openssl:echo -n"1234567890A"| openssl enc -base64

PHP:

$hash = sha1("1234567890A", true);
var_dump($hash);
echo base64_encode($hash);
Run Code Online (Sandbox Code Playgroud)

结果不同:

openssl:MTIzNDU2Nzg5MEE =

PHP:/ Q6nenquhGpX5h2WdiQZQF47Pe8 =

我想这只是一个简单的设置我可以用来调整结果1或2,因为PHP会生成一个字符串1的双精度字符串.

请帮帮我.非常感谢,罗恩

php base64 openssl

2
推荐指数
1
解决办法
1955
查看次数