我有一个具有常量ivar的Swift类(它们现在被称为实例常量吗?).要将值设置为此常量,我需要调用所需对象的初始化程序并传递自身.但是,我不被允许,因为我需要首先初始化所有值,然后调用super.init(),之后我被允许访问self.那么在这种情况下该怎么办?
class Broadcaster: NSObject, CBPeripheralManagerDelegate {
let broadcastID: NSUUID
let bluetoothManager: CBPeripheralManager
init(broadcastID: NSUUID) {
self.broadcastID = broadcastID
let options: Dictionary<NSString, AnyObject> = [ CBPeripheralManagerOptionShowPowerAlertKey: true ]
self.bluetoothManager = CBPeripheralManager(delegate: self, queue: nil, options: options) // error: 'self' used before super.init call
super.init()
}
}
Run Code Online (Sandbox Code Playgroud) 我的一个iOS应用程序中有一个脚本应该获取git版本哈希并将其放入版本号中.在这个脚本中,我运行git --git-dir ="$ PROJECT_DIR"show -s --pretty = format:%h.但是,我得到的消息是该目录不是git存储库.如果我回显PROJECT_DIR var并转到终端,则以下工作:
cd projectDirPath
git show -s --pretty=format:%h
Run Code Online (Sandbox Code Playgroud)
什么不起作用是:
git --git-dir=projectDirPath show -s --pretty=format:%h
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?文档指出,我可以使用--git-dir指定git存储库的路径,并且指定的路径显然是一个git存储库,因为如果我第一次进入该路径,所有git命令都可以正常工作.但是,如果我不在此路径中,则指定--git-dir不起作用.
最好的问候,迈克尔
我NSAttributedString在iOS上挖掘s.我有一个模型,正在返回一个人的名字和姓氏NSAttributesString.(我不知道在模型中处理属性字符串是否是一个好主意!?)我希望第一个名字要经常打印,因为姓氏应该用粗体打印.我不想要的是设置文本大小.到目前为止,我发现的只有:
- (NSAttributedString*)attributedName {
NSMutableAttributedString* name = [[NSMutableAttributedString alloc] initWithString:self.name];
[name setAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:[UIFont systemFontSize]]} range:[self.name rangeOfString:self.lastname]];
return name;
}
Run Code Online (Sandbox Code Playgroud)
但是,这当然会覆盖姓氏的字体大小,这样UITableViewCell可以在单元格标签的常规文本大小中打印出名字的位置非常有趣,并且姓氏将打印得非常小.
有没有办法实现我想要的?
谢谢你的帮助!
我有一个bug报告,在下一行中说明崩溃,其中client是一个实例 NSMutableDictionary
[client setObject:[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode] forKey:@"country"];
Run Code Online (Sandbox Code Playgroud)
我的猜测是,NSLocaleCountryCode在这一行中返回nil,这导致向一个NSDictionary导致崩溃的nil对象添加.问题是,有没有人经历过这样的问题?有什么理由NSLocaleCountryCode可以为零currentLocale吗?文档没有说明返回零值,我认为这将总是返回一个有效的国家.
最好的问候,迈克尔
我正在寻找一个种子随机数生成器,它创建一个数字池作为上下文.它不一定太好.它用于游戏,但重要的是,游戏引擎的每个实例都有自己的数字池,因此不同的游戏实例甚至游戏中使用随机数的其他部分都不会破坏游戏的确定性特征.生成的数字.
目前我正在使用rand(),显然没有这个功能.
有没有能够做我想做的c或Objective-c发电机?
我正在使用一个NSFetchedResultsController刷新表视图的数据.数据本身是通过在后台运行的XML解析器提供的.解析器完成后,它会将数据保存到自己的上下文中.在NSFetchedResultsController高达立即这些变化镐和开始调用-(void)controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:每个更新元素的委托方法.这也很快,在日志文件中看起来完全正常.
但是,在-(void)controllerDidChangeContent:我打电话UITableView的时候-(void)endUpdates.然后我在屏幕上看到更新动画,但在所有单元格中,在最后一个只有一半可见的单元格旁边,唯一可见的是单元格左侧的图像.所有文字标签都不可见.它需要大约5到10秒,然后所有标签都可见.
但是,如果我忽略了所有的委托电话NSFetchedResultsController,并简单地调用[self.tableView reloadData]就-(void)controllerDidChangeContent:一切正常,没有任何问题.内容立即存在.
有谁知道我在这里做错了什么?分析器显示主线程基本上什么都不做.除了调度到表视图的事件之外,还可以正确处理触摸事件.这些都没有处理.看起来表格视图正忙于做一些认真的工作,但我真的不知道那可能是什么,因为动画已经完成了.
这是我的实现NSFetchedResultsControllerDelegate:
- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller {
NSLog(@"%s", __PRETTY_FUNCTION__);
[self.tableView beginUpdates];
}
- (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id <NSFetchedResultsSectionInfo>)sectionInfo atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type {
NSLog(@"%s", __PRETTY_FUNCTION__);
switch(type) {
case NSFetchedResultsChangeInsert:
[self.tableView insertSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationAutomatic];
break;
case NSFetchedResultsChangeDelete:
[self.tableView deleteSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationAutomatic];
break;
}
}
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath*)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath*)newIndexPath {
NSLog(@"%s", __PRETTY_FUNCTION__);
UITableView* tableView = self.tableView;
switch(type) {
case …Run Code Online (Sandbox Code Playgroud) 我有一个UIButton应该在某些情况下显示活动指示器而不是图像.我现在所做的是将按钮的imageView的隐藏属性设置为YES并返回.我也尝试将alpha值设置为0.0f并返回1.0f.
这一直有效,直到按钮的状态发生变化.这会重置imageView的属性并导致隐藏== NO和alpha == 1.0f.
有没有人做过类似的事情,或者知道如何隐藏按钮的imageView,而其余部分仍然可见?
我是Verilog的新手,所以这个问题可能很愚蠢。
我正在尝试的是:我有一个具有clk,8位输入和8位输出的组件。它应该做的是:
如果时钟事件为下降沿,则应将输出设置为0。如果时钟事件为上升沿,则应将输出设置为该边缘事件此刻的任何输入。在时钟的高相位期间,无论输入如何变化,输出都不应改变。
到目前为止我尝试过的是:
always @(negedge clk)
_ledOut <= 0;
always @(posedge clk)
_ledOut[RowSize-1:0] <= ledIn[RowSize-1:0];
Run Code Online (Sandbox Code Playgroud)
这告诉我,它无法解析net _ledOut的多个常量驱动程序。
但是,将它们放在一起始终为@(negedge clk,posege clk)告诉我,它不能同时测试这两种情况。
因此,我尝试仅制作一个始终@(clk)块,然后使用if语句:
always @(clk) begin
if(clk == 0)
_ledOut <= 0;
else if(clk == 1)
_ledOut[RowSize-1:0] <= ledIn[RowSize-1:0];
end
Run Code Online (Sandbox Code Playgroud)
但这不只是打开clk事件。在时钟的高电平阶段,它将_ledOut与ledIn链接在一起,因此ledIn的更改也确实会对_ledOut产生影响。我在这里做错了什么?
最好的问候,迈克尔
我正在尝试将CIFilter添加到a的backgroundFilters属性中以CALayer使其在a中绘制UIView.因此我将子类化CALayer并在init中执行以下操作:
CIFilter* blur = [CIFilter filterWithName:@"CIGaussianBlur"];
[blur setDefaults];
[blur setValue:@(10) forKey:@"inputRadius"];
self.backgroundFilters = @[ blur ];
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个子类,UIView通过返回图层类,将该自定义图层作为图层+[UIView layerClass]
这是有效的,上面的代码执行!
但是,如果我把这个视图放在上面,UIImageView我希望在放置这个视图的地方画出图像.但事实并非如此!该视图就像一个常规视图,并采用我设置为它的backgroundColor属性的任何颜色/ alpha值,但我只是看到底层UIImageView,没有模糊!