每当我构建时,测试对我的Xcode项目的任何更改都会成为一种耐心的练习.在编译完所有源文件之后,我在Xcode顶部的活动窗口中收到以下消息:
"运行3个自定义Shell脚本中的3个"
我没有添加任何自己的自定义shell脚本,但我通过Cocoapods使用了很多依赖项,我使用2个框架构建环境,Crashlytics和Tapstream.Crashlytics要求你在构建阶段添加一个运行脚本,除了我不知道其他的来自哪里,它们似乎是我构建时间的瓶颈.
任何人都可以告诉我发生了什么以及我如何加快速度?
我正在使用webcache加载一个facebook用户列表,它的工作非常棒.直到你选择其中的一个单元,然后它似乎要么改变内容模式,或者更可能它改变了UIImageView的帧的大小,而是根据画面的实际大小.为清楚起见,这里有一些屏幕
在这里装载 http://img.photobucket.com/albums/v246/homojedi/Screenshot20120727114807.png
并且在选择一些图像时,你可以看到它们似乎跳到了原始的方面. http://img.photobucket.com/albums/v246/homojedi/Screenshot20120727114827.png
正如预期的那样,如果我将它们从屏幕上滚动并返回到它们,它们将恢复到它们在开始时的状态.
令人费解.我唯一没有尝试的是子类化uitableView并在那里设置其布局子视图.除此之外还有什么我可以做的吗?
编辑:请求的代码
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// typically you need know which item the user has selected.
// this method allows you to keep track of the selection
_indexPath = indexPath;
[_indexPath retain];
}
Run Code Online (Sandbox Code Playgroud) 我对使用restkit的方式感到有些困惑,似乎有多种方法可以做同样的事情,在我满足之前只是弄乱它直到它工作,但现在他已经改变了框架和使用在0.20 .x,我花了很多时间来转换我的代码,现在花费更多的时间试图让它像以前一样工作.我已经仔细研究了一些例子和那些人们声称为他们工作的例子,对我来说没那么多,所以某处肯定会有所不同,所以也许有人可以告诉我以下方面的不同之处得到这个数据至少例如1和2(失败,但这是关于restkit github的问题)
response.body={
"player": [
{
"_id": "50585c86ded998e77a000002"
}
]
}
Run Code Online (Sandbox Code Playgroud)
1.
[[RKObjectManager sharedManager].router.routeSet addRoute:[RKRoute routeWithClass:[Player class] pathPattern:@"player/fbid/:fID" method:RKRequestMethodGET]];
Run Code Online (Sandbox Code Playgroud)
为了得到你的播放器,这样的事情:
Player *player = [Player new];
player.playerID = 2;
[[RKObjectManager sharedManager] getObject:player path:nil parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *result)
{
// Request
} failure:nil];
Run Code Online (Sandbox Code Playgroud)
2.
使用响应描述符就像这样.
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:playerWtfMappingIn pathPattern:nil keyPath:@"player" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[[RKObjectManager sharedManager] addResponseDescriptor:responseDescriptor];
[tempPlayer setFbID:[result objectForKey:@"id"]];
[objectManager getObject:tempPlayer path:nil parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult)
{
}
failure:nil];
Run Code Online (Sandbox Code Playgroud)
3.
或者实际上在RestKit维基上自行解雇
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:articleMapping pathPattern:nil keyPath:@"articles" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个内部使用的框架,但我很难让它发挥得很好.我似乎有的问题是框架使用cocoapods的一些依赖,然后当我试图测试是在一个空白的项目,通过添加它作为子项目然后导入它,它不会建立和抱怨说"不这样的模块'x'".
理想情况下,而不是像它一样的子项目ID纯粹作为一个框架,但我现在只是采取婴儿步骤.
我有一个UIImageView的动画集代表当前值并且不断向上滴答...理想情况下永远不会停止,在视图中也是一个scrollView或者当我滚动或放大scrollView时,动画停止,并且当scrollView完全停止移动时再次启动.我认为这是由于一个线程问题,因为重绘元素都发生在主线程上,起初我尝试了UIView动画,然后甚至核心动画都没有效果......有没有办法让我的蛋糕也吃掉它?
任何和所有的帮助将不胜感激
代码如下
- (void)TestJackpotAtRate:(double)rateOfchange
{
double roc = rateOfchange;
for (int i = 0; i < [_jackPotDigits count]; ++i)
{
roc = rateOfchange/(pow(10, i));
UIImageView *jackpotDigit = [_jackPotDigits objectAtIndex:i];
float foreveryNseconds = 1/roc;
NSDictionary *dict = @{@"interval" : [NSNumber numberWithFloat:foreveryNseconds],
@"jackPotDigit" : jackpotDigit
};
[NSTimer scheduledTimerWithTimeInterval:foreveryNseconds target:self selector:@selector(AscendDigit:) userInfo:dict repeats:YES];
}
}
-(void)AscendDigit:(NSTimer*)timer
{
NSDictionary *dict = [timer userInfo];
NSTimeInterval interval = [(NSNumber*)[dict objectForKey:@"interval"] floatValue];
UIImageView *jackpotDigit = [dict objectForKey:@"jackPotDigit"];
float duration = (interval < 1) ? interval : …Run Code Online (Sandbox Code Playgroud) 我有一个数字字符串,并观察到它intValue与字符串值有很大不同的差异.代码如下:
NSString *string = [result objectForKey:@"id"];
NSLog(@"ID %@",string);
NSLog(@"ID as integer %i",[string intValue]);
Run Code Online (Sandbox Code Playgroud)
给出一个输出:
"ID 100004378121454"
"ID as integer 2147483647"
Run Code Online (Sandbox Code Playgroud)
我能做出的唯一合乎逻辑的猜测是,字符串太长而无法转换为int...在任何情况下我都尝试过longLongValue这样 - 对不同的结果而不是它应该是的结果.
所以我试图动画一些布局约束,我有悲惨的运气,我只是没有看到任何东西然后我得到一个错误消息说它不能同时满足所有约束等.
我正在使用一个名为PullableView的类,其动画使用的是旧样式,[UIView commitAnimation]因此我将其子类化并添加到我的代码中,我相信它将用于制作动画约束...没有这样的运气并尝试动画它甚至让它做很多事情任何事情都证明是困难的我只是得到"无法同时满足约束".问题是我对这个约束业务相当新,所以我不知道从哪里开始.
这是错误,另一个几乎是相同的但是对于centerY.
"<NSLayoutConstraint:0x7c8a3a0 StyledPullableView:0x905a9b0.centerX == UIView:0x9054680.centerX>",
"<NSLayoutConstraint:0x7c6b480 StyledPullableView:0x905a9b0.centerX == UIView:0x9054680.centerX + 128>"
我[pullRightView setTranslatesAutoresizingMaskIntoConstraints:NO];在打电话之前当然做了
任何帮助赞赏.
- (void)setOpenedForConstraints:(BOOL)op animated:(BOOL)anim
{
opened = op;
if (anim)
{
NSLayoutConstraint *constraintX = [NSLayoutConstraint constraintWithItem:self
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:_parentView
attribute:NSLayoutAttributeCenterX
multiplier:1
constant:0];
NSLayoutConstraint *constraintY = [NSLayoutConstraint constraintWithItem:self
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual
toItem:_parentView
attribute:NSLayoutAttributeCenterY
multiplier:1
constant:0];
[_parentView addConstraint:constraintX];
[_parentView addConstraint:constraintY];
constraintX.constant = opened ? self.openedCenter.x : self.closedCenter.x;
constraintY.constant = opened ? self.openedCenter.y : self.closedCenter.y;
}
if (anim)
{
// For the …Run Code Online (Sandbox Code Playgroud) 随着最近发布的iOS 9,可能需要对现有代码进行一些更新,以补偿对Apple API所做的任何更改.最近似乎他们已经做到了这样,当键盘出现时,集合视图现在会自动调整它的内容插入.这对于未手动处理或支持多个OS版本的用户非常有用.在我的应用程序中,它引起了一些头痛.我终于想出了一个使用KVO的解决方案来通知我系统何时更改了插件并且我做出了相应的反应,除了单个边缘情况外,一切正常.
如果我显示键盘,然后尝试通过交互式滑动返回导航堆栈导致beginAppearanceTransition:animated:被调用,但然后取消它然后点击键盘侧面以退出第一响应者,系统突然决定它做不想自动更新我的插件,我的KVO永远不会被内容插入触发,键盘消失但内容插入没有减少导致它看起来太错误...如果我点击文本字段导致键盘再次显示,突然它决定再次进行自动更新.
有没有人知道为什么它在取消更新我的插图的交互式转换后忽略了我对键盘的第一次解雇?
不得不重新审视这个问题,因为团队觉得它太脆弱和黑客,并且在玩这个以找出他们如何处理相同的情况后,他们似乎不必处理来自无处的错误呼叫.所以我子类UICollectionView并覆盖setContentInset函数只是为了在这里找到有问题的调用
IMG http://i63.tinypic.com/2hgqr7t.png
除了堆栈跟踪在这一点上没有特别的帮助,有没有人有任何想法?
我只是好奇是否可以做如下的事情
protocol Data { }
class A: Data { }
class B: Data { }
class Generic<T> { }
class doStuff {
func prepareToDoStuff() {
self.doTheStuffWithGenerics([Generic<A>(), Generic<B>])
}
func doTheStuffWithGenerics<T: Generic<Data>>(_ generics: [T]) {
}
}
Run Code Online (Sandbox Code Playgroud)
目前我的编译器告诉我没有说
“无法将类型‘Generic[A]’的值转换为预期元素类型‘Generic[Data]’”
有什么想法吗?解决方案?
因此,当我遇到一些稀缺资源时,我正在研究消息转发并运行一些单元测试,这些资源包括苹果公司自己的品牌文件,forwardInvocation:据我所知需要使用这些文件methodSignatureForSelector:。
现在,我得到了一个大致的想法,methodSignatureForSelector:即查看您试图将消息转发到的对象是否具有匹配的方法名称和参数,以便可以调用forwardInvocation:我的问题,这是为什么为什么在apples文档中它说要调用methodSignatureForSelector:类似的超类的实现所以...
- (NSMethodSignature*)methodSignatureForSelector:(SEL)selector
{
NSMethodSignature* signature = [super methodSignatureForSelector:selector];
if (!signature) {
signature = [surrogate methodSignatureForSelector:selector];
}
return signature;
}
Run Code Online (Sandbox Code Playgroud)
对我来说,这似乎是在说:“如果我继承的所有类都没有方法可以处理此方法,请检查替代对象是否具有此功能。”
苹果提供的例子是,在谈判方法上,战士代替外交官行事。在这个例子中,我看不出为什么要检查战士或父母中的任何一个是否有适当的方法签名来转发。因此,这使我相信存在另一个原因,这是我无法想到的,有人可以给我一个例子或帮助弄清楚我可能遗漏的地方吗?
TL; DR
为什么需要[super methodSignatureForSelector:selector];?
一直试图让它工作一段时间知道我已经尝试过使用数据和流媒体但没有运气,我认为我不需要像大多数示例中所示创建存储桶,因为我想上传到的存储桶已经存在,它还告诉我我试图访问的存储桶,但是当我尝试上传时,我得到了这个
“将图像上传到 S3 时出错:您提供的 XML 格式不正确或未根据我们发布的架构进行验证”
这是代码
UIImage * img = [[[[CurrentGamesInfo sharedCurrentGamesInfo]GameInCreation] GetImageToSend]_imageToSend];
NSData *savedImageData = UIImageJPEGRepresentation(img, 0.8);
NSString *pictureName = [[[CurrentGamesInfo sharedCurrentGamesInfo]GameInCreation] GetGameID];
@try
{
AmazonS3Client *s3 = [[[AmazonS3Client alloc] initWithAccessKey:MY_ACCESS_KEY_ID withSecretKey:MY_SECRET_KEY] autorelease];
//[s3 createBucket:[[[S3CreateBucketRequest alloc] initWithName:MY_PICTURE_BUCKET] autorelease]];
NSArray *bucketArray = [s3 listBuckets];
S3Bucket *bucket = [[s3 listBuckets] objectAtIndex:0];
NSLog(@"%@",[bucket name]);
S3PutObjectRequest *por = [[[S3PutObjectRequest alloc] initWithKey:pictureName inBucket:MY_PICTURE_BUCKET] autorelease];
por.contentType = @"image/jpeg";
//por.data = savedImageData;
//por.cannedACL = [S3CannedACL publicRead];
S3UploadInputStream *stream = [S3UploadInputStream inputStreamWithData:savedImageData];
//stream.delay = 0.2;
//stream.packetSize …Run Code Online (Sandbox Code Playgroud) ios ×8
objective-c ×3
animation ×2
swift ×2
xcode ×2
amazon-s3 ×1
arrays ×1
cocoapods ×1
generics ×1
ios9 ×1
nsstring ×1
protocols ×1
restkit ×1
restkit-0.20 ×1
shell ×1
uiedgeinsets ×1
uiimageview ×1
uiscrollview ×1
uitableview ×1