我刚做了一些更改,我看到一个未添加到repo的待处理文件.文件名路径为*/xcshareddata/IDEWorkspaceChecks.plist.有人可以解释这个文件的原因,为什么或为什么不需要将它添加到回购中?
我最近刚开始使用可可豆荚(应该很久以前就已经这么做了),我想知道平台的价值应该是什么.例如,我现在有platform :ios, 8.0(在8.0周围有刻度线,但我不知道如何在编辑器中转义它们),这告诉我使用这些依赖项的代码的最低版本是iOS 8.0.几个问题.
platform ios: 9.0在8.0的依赖项列表下面添加另一个依赖项列表以便使用?这就是现在的问题.谢谢你的帮助.
数字3的示例
platform :ios, '8.0'
target 'my target' do
//list of pods
end
platform: ios, `9.0`
target `my target` do
//list of pods
end
Run Code Online (Sandbox Code Playgroud) 我只是想知道我是否正确理解这一点.因此,根据apple docs,当你创建一个闭包作为类实例的属性并且该闭包引用self(创建闭包属性的类)时,这将导致一个强大的保留周期,最终类和闭包将被释放.所以在非专业术语中,这意味着如果我有一个具有属性且该属性是闭包的类,并且一旦我在类中分配了该闭包的功能,该类声明了将导致强保留周期的闭包属性.下面简要说明我的意思
class SomeViewController{
let myClosure:()->Void
public func someFunction(){
....bunch of code
myClosure = {
self.dismiss(blahBlahBlah)
}
}
}
Run Code Online (Sandbox Code Playgroud)
这最终会导致保留循环,因为闭包保持对self的强引用,self是创建闭包属性的类.现在根据苹果来解决这个问题,我会定义一个类似的捕获列表
class SomeViewController{
let myClosure:()->Void
public func someFunction(){
....bunch of code
myClosure = { [weak self] in
self?.dismiss(blahBlahBlah)
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意我如何在in语句之前放置[weak self].这使得闭包只知道对自身的弱引用而不是强引用.当封闭和自我生存相同的持续时间时,IM应该使用弱的时候自我可以关闭或无主.
我从这里获得此信息自动引用计数和该链接的强引用循环部分,这句话"如果你为一个类实例的属性分配一个闭包,那么一个强引用循环也会出现那个闭包抓住了实例"我大约90%确定我正确地理解了这一点,但只有10%的怀疑.所以我有这个正确吗?
我之所以这样问是因为我在视图中使用了一些回调函数.那些回调调用自己,但那个场景中的self是响应回调而不是实际视图本身的视图控制器.这就是我自己怀疑的地方,因为我从那句话突出显示我不认为我需要把[weak self]所有那些按钮回调,但我只是确定.这是一个例子
class SomeViewController {
let someSubview:UIView
override viewDidLoad() {
//Some Subview has a button and in that view I just have some action that gets fired off calling the callback …Run Code Online (Sandbox Code Playgroud) 我无法解决这个问题,因为无论我做什么让我的问题得以解决,我都会遇到这个问题
继承人的踪迹
$0 = 0x1f8f9a10 (
0 ??? 0x02b04144 0x0 + 45105476,
1 TheAppName 0x001016e0 start + 0,
2 Foundation 0x34334599 + 72,
3 WebCore 0x399e7bfb + 82,
4 UIKit 0x3595b493 + 182,
5 UIKit 0x358d7d1f + 382,
6 UIKit 0x358d7d33 + 402,
7 UIKit 0x358d7d33 + 402,
8 UIKit 0x358d7431 + 360,
9 UIKit 0x358d72c3 + 30,
10 UIKit 0x35ce2fef + 386,
11 UIKit 0x35ce3879 + 464,
12 UIKit 0x35ce63d3 + 698,
13 UIKit 0x35ce5e49 + 552,
14 UIKit …Run Code Online (Sandbox Code Playgroud) 我无法弄清楚动画块完成后动画从fromValue到toValue闪烁的原因.我知道在完成动画后,您必须将CALayer的值设置为动画的结束状态,以使其看起来保持一致.然而,无论我在哪种顺序调用这些方法,我都会不断获得闪烁的结果.我正在做的是绘制一个带有biezer路径的复选标记,然后一旦strokeEnd动画完成,我通过动画fillColor属性填写复选标记.当用户选择与复选标记相关联的tableviewcell的行时,填充复选标记功能和重置复选标记功能都被触发.哦,如果这有所不同,我正在使用AutoLayout.
所以我真的想知道一些事情1)一旦显示表视图单元格,我调用公共函数shoudSetCheckmarkToCheckedState,它将boolean self.userSelectedCheckmark设置为函数中传递的参数isChecked.从那里我调用[self setNeedsLayout],它触发layoutSubviews并调用shouldDrawCheckmark ...函数.我这样做的原因是因为如果我没有第一次绘制单元格就没有框架设置,所以我的绘图看起来很乱.因此,每当我更改userSelectedCheckmark属性时,我应该调用setNeedsLayout还是有更好的方法.
2)为什么动画完成后复选标记会闪烁.我想我知道为什么,因为当动画完成时,图层属性被重置为图层开始动画时所处的状态.那么我该如何解决这个问题呢?我会触发一个计时器,在动画结束前一毫秒更改填充颜色,但感觉不对.
继续代码btw
typedef void (^animationCompletionBlock)(void);
#define kAnimationCompletionBlock @"animationCompletionBlock"
#import "CheckmarkView.h"
#import "UIColor+HexString.h"
@interface CheckmarkView()
@property (nonatomic,strong) CAShapeLayer *checkmarkLayer;
@property (nonatomic,assign) BOOL userSelectedCheckmark;
- (void)shouldDrawCheckmarkToLayerWithAnimation:(BOOL)animateCheckmark;
@end
@implementation CheckmarkView
#pragma mark - Lifecycle
/**********************/
- (id)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if (self) {
self.translatesAutoresizingMaskIntoConstraints = FALSE;
self.layer.cornerRadius = 5.0;
[self setClipsToBounds:TRUE];
}
return self;
}
- (void)layoutSubviews{
[self shouldDrawCheckmarkToLayerWithAnimation:self.userSelectedCheckmark];
}
#pragma mark - Public Methods
/***************************/
- (void)shouldSetCheckmarkToCheckedState:(BOOL)isChecked{
self.userSelectedCheckmark = isChecked;
[self setNeedsLayout];
}
#pragma mark - …Run Code Online (Sandbox Code Playgroud) IM 在更改返回键类型时遇到问题,同时仍在编辑视图的文本字段。因此,当用户单击文本字段时,我有一些检查可以更改键盘的返回类型,这些检查位于 中- (void)textFieldDidBeginEditing:(UITextField *)textField,当我在此处更改键盘返回键时,代码可以正常工作。我只是像这样更改键盘返回键[textField setReturnKeyType:UIReturnKeyDone];。所以有 2 个文本字段用户名和密码。如果两个文本字段中都有文本,我想将返回键更改为DONE如果只有一个文本字段中有文本,我想将其更改为NEXT,这样我就可以在文本字段之间来回跳转。所以现在我要进行一些检查和余额- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string。然而,我放入的相同代码textFieldDidBeginEditing在此函数中不起作用。我读过很多帖子,他们都说删除文本字段作为第一响应者,然后设置返回键并再次成为响应者,但这扰乱了我当前在各个方法中的流程。我还读到我必须[textfield reloadInputFields]在设置返回键后调用,但这又不起作用。你可能会认为苹果现在已经修复了这样的错误。无论如何,有人在这里提供一些意见吗?
我刚刚从一家公司接受了面试测试,我轻松地完成了它,但他们说我的功能是在o(n).这是问题所在
使用以下方法编写IntegerTracker类:
track(int) - Receives an integer for tracking.
get_max() - Returns the max (int) of all integers seen so far.
get_min() - Returns the min (int) of all integers seen so far.
get_mean() - Returns the mean (float) of all integers seen so far.
get_mode() - Returns the mode (int) of all integers seen so far.
Run Code Online (Sandbox Code Playgroud)
确保每个方法(包括跟踪)以恒定时间运行(O(1)时间复杂度).
这就是我完成它的方式
- (instancetype)init{
if(self == [super init]){
self.numbers = [[NSMutableArray alloc]init];
}
return self;
}
- (void)trackInt:(int)number{
[self.numbers addObject:[NSNumber numberWithInt:number]];
}
- …Run Code Online (Sandbox Code Playgroud) 我有一个问题,我似乎无法弄清楚,谷歌搜索和所有.我试图在我的程序中访问CAShapeLayer,每次我使用这行代码CASHapeLayer*layer = [CAShapeLayer layer]我收到此错误信息
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_CAShapeLayer", referenced from:
objc-class-ref in NCIStaticBg.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
我似乎无法理解为什么它不起作用.对于一个核心图形,始终会添加到您默认创建的每个项目中.因此,将#import添加到任何文件应该允许我使用这个类.当我输入CA ...我能够在intellisense中看到CAShapeLayer.还有什么奇怪的是,我可以打开我的一个旧项目,那些项目使用CASHapeLayer,我根本没有错误.所以它特定于这个项目,我甚至创建了一个新项目,但仍然发生同样的错误.谢谢您的帮助.
ios ×4
big-o ×1
calayer ×1
closures ×1
cocoapods ×1
git ×1
gitignore ×1
little-o ×1
objective-c ×1
retain-cycle ×1
swift ×1
uibezierpath ×1
uitextfield ×1
uiwebview ×1
xcode ×1