使用XCode 5.1,会出现一个新警告.它让我明白 - 显然 -我做错了什么.
我们的想法是拥有一个对象(一个模型),它是从原始类继承的可变版本.这样的想法是要打开的是一个性质readonly,以readwrite
@interface Car : NSObject
@property (strong, readonly) NSString *name;
@end
@interface MutableCar : Car
@property (strong, readwrite) NSString *name;
@end
Run Code Online (Sandbox Code Playgroud)
这些需要在单独的文件中(如两个普通类).
它给出了这个警告:
Auto property synthesis will not synthesize property 'name' because it is 'readwrite' but it will be synthesized 'readonly' via another property
Run Code Online (Sandbox Code Playgroud)
所以我想知道什么是正确的解决方案来做类似的事情,如果它甚至可能的话.如果需要编写访问器并避免使用自动合成等.请准确,并用文档或其他任何方式支持您的答案.
我的应用程序中有保密信息,所以当应用程序即将移动到后台时,我想用启动画面隐藏它们.
我在iOS6上运行应用程序.
我试图显示视图,applicationWillResignActive但问题是它显示启动屏幕,即使用户滑动控制面板,例如.我希望它只在应用程序移动到后台时显示.
我尝试显示我的splashScreen,applicationDidEnterBackground但它需要screenShot才能在动画期间恢复时显示信息.
这就是我想要的精神:
- (void)applicationDidEnterBackground:(UIApplication *)application {
[_window addSubview:__splashController.view];
}
Run Code Online (Sandbox Code Playgroud) 知道某个日期是在同一周(或年份或月份)中的最佳方式是什么,最好是使用扩展,并且只使用Swift?
作为一个例子,在Objective-C中我有
- (BOOL)isSameWeekAs:(NSDate *)date {
NSDateComponents *otherDay = [[NSCalendar currentCalendar] components:NSCalendarUnitEra | NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:self];
NSDateComponents *today = [[NSCalendar currentCalendar] components:NSCalendarUnitEra | NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date];
return ([today weekOfYear] == [otherDay weekOfYear] &&
[today year] == [otherDay year] &&
[today era] == [otherDay era]);
}
Run Code Online (Sandbox Code Playgroud)
请不要提出解决桥接Date至NSDate
我有一个这样的元组数组:
var answers: [(number: Int, good: Bool)]
Run Code Online (Sandbox Code Playgroud)
我想从中得到一个数字成员数组.就像我做了类似的事情:
answers["number"] // -> Should give [Int] of all values named "number"
Run Code Online (Sandbox Code Playgroud)
我没有找到类似的东西,也许它不可能,但它会很难过:(
我使用SmartGit作为git的GUI.但到目前为止,我总是遇到同样的问题.在我的项目(所有这些)中,我无法拉动,按钮被禁用,它只是"仅提取"按钮可用.
但是,如果我运行该命令git pull origin master它工作正常,我可以像往常一样继续使用SmartGit.
如何摆脱这个问题?

我喜欢它使用UIRefreshControl(没有UITableViewController):
UIRefreshControl *refreshControl = [UIRefreshControl new];
[refreshControl addTarget:self action:@selector(viewDidBeginRefreshing:) forControlEvents:UIControlEventValueChanged];
[self.table addSubview:refreshControl];
Run Code Online (Sandbox Code Playgroud)
问题是刷新轮位于UINavigationController的半透明条(ios7)下方.StackOverflow上只有几个关于此问题的主题.他们没有为我带来任何有价值的解决方案.
我希望的是让我的UIRefreshControl的y位置降低80px.
注意:我知道不建议在UITableViewController外部使用UIRefreshControl.所以不需要警告它.
我有一个UIViewController呈现另一个UIViewController.两个视图控制器都使用topLayoutGuide和bottomLayoutGuide使用自动布局.
一切都很好,有和没有通话栏.或者有或没有自定义过渡...
但是,当存在调用栏和自定义转换时,我呈现的视图控制器的子视图错误地放下了20px(导致底部的剪切视图).
我查了一下topLayoutGuide,bottomLayoutGuide这是错误的......
这是过渡的代码:
#pragma mark - GETTER
- (CGFloat)presentationTopProgressValue {
return __fromViewControllerView.y / __containerView.height;
}
#pragma mark - SETTER
- (void)set_context:(id<UIViewControllerContextTransitioning>)_context {
__context = _context;
__containerView = [__context containerView];
__fromViewController = [__context viewControllerForKey:UITransitionContextFromViewControllerKey];
__fromViewControllerView = [__fromViewController view];
__toViewController = [__context viewControllerForKey:UITransitionContextToViewControllerKey];
__toViewControllerView = [__toViewController view];
}
#pragma mark - TRANSITION
- (id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source {
return self;
}
#pragma mark …Run Code Online (Sandbox Code Playgroud) 我读了很多关于它的话题,但我还是迷路了.
我想创建两种对象,一种是只有"只读"属性的不可变对象,另一种是只有"readwrite"属性的可变对象.
让我们称他们为EXCar和EXMutableCar.
EXCar是NSObject的子类,EXMutableCar是EXCar的子类.
ExCar将拥有其界面
@property (nonatomic, strong, readonly) NSString *name;
Run Code Online (Sandbox Code Playgroud)
EXMutableCar将在其界面中具有
@property (nonatomic, strong) NSString *name;
Run Code Online (Sandbox Code Playgroud)
所以当我使用它的子类EXMutableCar时,我"打开"EXCar的属性.然后它是可变的.问题是在它们之间正确复制.
我在EXCar中实现了mutableCopyWithZone:
- (id)mutableCopyWithZone:(NSZone *)zone {
EXMutableCar *mutableCopy = [[EXMutableCar allocWithZone:zone] init];
mutableCopy.name = _name;
return mutableCopy;
}
Run Code Online (Sandbox Code Playgroud)
第一个问题,是这样做的好方法吗?(我想要燕子副本)
问题出在copyWithZone上.由于EXCar的属性是readonly,我既不能在EXCar中创建,也不能在EXMutableCar中创建EXCar的新实例,并填充其属性,如下所示:
- (id)copyWithZone:(NSZone *)zone {
EXCar *copy = [[EXCar allocWithZone:zone] init];
copy.name = _name; // This can't work...
return copy;
}
Run Code Online (Sandbox Code Playgroud)
我真的不想做一个"init"方法,传入15个属性(当然,EXCar就是一个例子,真正的类充满了许多属性).通常它们是从服务器的JSON消息启动的,因此它们不需要复杂的init方法.
第二个问题是这样的,如何做一个使我的类不可变的copyWithZone?
谢谢你的帮助 :)
我用这个代码
#define IS_IOS7 (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1)
Run Code Online (Sandbox Code Playgroud)
查找应用程序是否在iOS7上运行.但我现在需要知道它是否在iOS7.1上运行但是没有任何NSFoundationVersionNumber_iOS_7_0和NSFoundationVersionNumber_iOS_7_1
我知道的定义
#define NSFoundationVersionNumber_iOS_6_1 993.00
Run Code Online (Sandbox Code Playgroud)
所以也许我可以与高于993的数字进行比较,但我不知道.有人得到安全可靠的解决方案吗?
同样,iAd编程指南已经过时了很长时间(它提出了自iOS6以来不推荐使用的代码示例).
我想知道如何使用新的iPhone6和6+原始分辨率正确显示广告.
似乎苹果公司没有采取任何措施,而且横幅总是以50pt的高度显示自己的高度.(哪个结果为广告上的白条)
如果有人知道解决方案或有技术/发布说明谈论它?
编辑: 在iAd WorkBench上会出现一条消息:
iPhone 6和6 Plus
所有针对iPhone的现有广告系列现在都包括iPhone 6和6 Plus,以及iPhone 4s,5,5c和5s,以及第4代和第5代及更早版本的iPod touch.现有广告将在信箱中运行以适应更长的宽度,直到您上传iPhone 6和6 Plus资产.使用横幅模板创建的广告将自动转换为支持所有iPhone设备,包括iPhone 6和6 Plus.
任何针对iPhone用户的新广告或已修改广告系列都需要iPhone 6和6 Plus资源.您现在可以批量上传所有iOS设备的资源.
更新的iAd Workbench创意规格,包括iPhone 6和6 Plus的规格以及音频广告,可供下载.
iAd Tester v5.0的更新现已推出,必须用于在iOS设备上正确预览广告.
ios ×9
ios7 ×3
swift ×2
arrays ×1
autolayout ×1
background ×1
copywithzone ×1
date ×1
git ×1
git-pull ×1
iad ×1
in-call ×1
ios7.1 ×1
ios8 ×1
iphone-6 ×1
objective-c ×1
properties ×1
screenshot ×1
smartgit ×1
transitions ×1
tuples ×1
warnings ×1
xcode5.1 ×1