我创建了一个CollectionView控件并用图像填充它.现在我想在开始时滚动到特定索引处的项目.我试过scrollToItemAtIndexPath如下:
[self.myFullScreenCollectionView scrollToItemAtIndexPath:indexPath
atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally animated:YES];
Run Code Online (Sandbox Code Playgroud)
但是,我得到了以下异常.任何人都可以指导我在哪里出错.
2013-02-20 02:32:45.219 ControlViewCollection1[1727:c07] *** Assertion failure in
-[UICollectionViewData layoutAttributesForItemAtIndexPath:], /SourceCache/UIKit_Sim/UIKit-2380.17
/UICollectionViewData.m:485 2013-02-20 02:32:45.221 ControlViewCollection1[1727:c07] must return a
UICollectionViewLayoutAttributes instance from -layoutAttributesForItemAtIndexPath: for path
<NSIndexPath 0x800abe0> 2 indexes [0, 4]
Run Code Online (Sandbox Code Playgroud) 我正在研究这个代码,它在网上执行一些冗长的异步操作,当它完成时它触发一个完成块,执行一些测试,如果一个变量得到一个值,另一个冗长的操作应该立即开始:
-(void) performOperation
{
void(^completionBlock) (id obj, NSError *err, NSURLRequest *request)= ^(id obj,NSError *err, NSURLRequest *request){
int variable=0;
// Do completion operation A
//...
//...
// Do completion operation B
//Get the variable value
if(variable>0){
[self doLengthyAsynchronousOperationWithCompletionBlock: completionBlock];
}
};
//Perform the lenhgty operation with the above completionBlock
[self doLengthyAsynchronousOperationWithCompletionBlock: completionBlock];
}
-(void) doLengthyAsynchronousOperationWithCompletionBlock: completionBlock
{
//Do some lengthy asynchronous stuff
}
Run Code Online (Sandbox Code Playgroud)
使用此代码,我从编译器收到此警告:
WARNING: Block pointer variable 'completionBlock' is uninitialized when caputerd by the block
Run Code Online (Sandbox Code Playgroud)
我变了:
void(^completionBlock) (id obj, NSError …Run Code Online (Sandbox Code Playgroud) asynchronous objective-c ios objective-c-blocks retain-cycle
我一直在开发一个应用程序,用户可以使用该应用程序录制视频AVFoundation并发送到服务器,视频的最大大小可达15M,具体取决于互联网速度和类型,大约需要1到5分钟才能将视频传输到服务器.我正在将录制的视频传输到后台线程中的服务器,以便用户可以在视频上传到服务器时继续应用程序上的其他内容.
在阅读Apple Docs 以在后台实现长时间运行的任务时,我发现只允许几种应用程序在后台执行.
例如
audio-该应用程序在后台播放可听内容给用户.(此内容包括使用AirPlay播放音频或视频内容.)
它是否也使我的应用程序符合在后台运行任务的资格?或者我需要在主线程上传输视频?
我想在iOS中创建标签,任何人都可以帮助我使标签文本的第一个单词加粗和可点击.标签显示用户名及其注释,第一个单词始终是用户名.提前致谢!
我有这个奇怪的问题测试空(或null)文本属性.在这里我的设置:我有一个带有6个文本字段的视图,这里是我用来通过那些字段的代码(加载到NSMutable数组中)...
NSEnumerator *portsEnumerator = [appliancePorts objectEnumerator];
UITextField *tmpField;
newSite.port = [NSMutableArray array];
while (tmpField =[portsEnumerator nextObject]) {
NSLog(@"value:%@",tmpField.text);
if (![tmpField.text isEqualToString:nil]) {
[newSite.port addObject:(NSString *)tmpField.text];
}
}
Run Code Online (Sandbox Code Playgroud)
当我在这个界面中并在前两个字段中键入一些文本并在"仅"选项卡中显示重新生成字段时,这里的"完成"按钮就是我从GDB输出中得到的内容:
2010-08-10 20:16:54.489 myApp[4883:207] value:Value 1
2010-08-10 20:16:58.115 myApp[4883:207] value:Value 2
2010-08-10 20:17:02.002 myApp[4883:207] value:
2010-08-10 20:17:13.034 myApp[4883:207] value:
2010-08-10 20:17:15.854 myApp[4883:207] value:
2010-08-10 20:17:17.762 myApp[4883:207] value:
Run Code Online (Sandbox Code Playgroud)
我知道如果我测试空字符串它应该工作,因为转储到控制台时的文本属性显示:
UITextField: 0x5d552a0; frame = (20 8; 260 30); text = ''; clipsToBounds = YES; opaque = NO; tag = 1; layer = CALayer: 0x5d54f20
Run Code Online (Sandbox Code Playgroud)
但是,当我返回视图时,真正的问题开始,在同一个前两个字段中输入一些文本,然后在"完成"按钮之后输入(不通过另一个字段,因此它们不会得到任何焦点).这又是GDB输出...... …
我正在开发一个支持多语言的应用程序.正如您所料,我不时使用如下代码加载一些nib文件:
self.currentController = [[newClass alloc] initWithNibName:@"CustomController" bundle:nil];
Run Code Online (Sandbox Code Playgroud)
然后,应用程序将从其languange文件夹加载相应的本地化xib版本.现在,我想知道是否可以手动加载本地化的nib文件.例如,而不是简单地加载CustomController,装载英语/法语/德国/等的CustomController的版本.
有没有办法实现这个目标?
提前谢谢你的帮助!
PS我知道这可能不是在iphone/ipad应用程序中更改语言的正确方法,但这不是我的决定
[后来的编辑] 这看起来有点奇怪,像一个黑客,但它似乎工作(加载德国笔尖):
NSString* path= [[NSBundle mainBundle] pathForResource:@"de" ofType:@"lproj"];
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
self.currentController = [[newClass alloc] initWithNibName:@"CustomController" bundle:languageBundle];
Run Code Online (Sandbox Code Playgroud)
我在这里找到了提示:http://learning-ios.blogspot.com/2011/04/advance-localization-in-ios-apps.html
虽然它感觉不完全正确,我想知道是否还有其他解决方案.对于初学者来说,我觉得这会给旧版本的iO带来麻烦,因为语言文件夹有不同的命名约定
在我的tableViewController与searchBar我使用以下方法:
-(void) searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
...my code
}
Run Code Online (Sandbox Code Playgroud)
当我直接在searchBar中输入文本时,它工作正常.
我现在的问题是我想以编程方式调用此方法 - 这意味着我想从我的代码填写搜索栏,我知道该怎么做(实际上我在我的语言词典应用程序中选择最近搜索过的单词)和打电话给:
[SearchBar textDidChange: recentlySearchedWord]
Run Code Online (Sandbox Code Playgroud)
但这根本不适用于我的代码中的任何地方.
如果您对如何解决这个问题有所了解,请帮助我.
谢谢,
蒂姆
我有一个1600x1600 1.2MB的图像,其大小调整为320x320缩小到404KB.我需要进一步减少字节大小而不减少图像宽高比.
目前我正在使用 - TIFFRepresentationUsingCompression:factor:NSImage方法NSTIFFCompressionJPEG和因素似乎不影响图像大小/质量.
我怎么解决?
马尔科
我有这个distanceSorter.h/distanceSorter.m:
@interface CLLocation (DistanceComparison)
- (NSComparisonResult) compareToLocation:(CLLocation *)other;
@end
@implementation CLLocation (DistanceComparison)
- (NSComparisonResult) compareToLocation:(CLLocation *)other {
CLLocation *currentLocation = [[CLLocation alloc] initWithLatitude:[[NSUserDefaults standardUserDefaults] floatForKey:@"lastProcessedLatitude"] longitude:[[NSUserDefaults standardUserDefaults] floatForKey:@"lastProcessedLongitude"]];
CLLocationDistance thisDistance = [self distanceFromLocation:currentLocation];
CLLocationDistance thatDistance = [other distanceFromLocation:currentLocation];
if (thisDistance < thatDistance) { return NSOrderedAscending; }
if (thisDistance > thatDistance) { return NSOrderedDescending; }
return NSOrderedAscending;
}
@end
Run Code Online (Sandbox Code Playgroud)
当我这样做时,它适用于数组:
[someArray sortedArrayUsingSelector:@selector(compareToLocation:)];
Run Code Online (Sandbox Code Playgroud)
但是...我想将它用作NSFetchedResultsController的sortDescriptor,如下所示:
NSSortDescriptor *sortDistance = [[NSSortDescriptor alloc]
initWithKey:@"LocationObject"
ascending:YES
selector:@selector(compareToLocation:)];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortDistance]];
Run Code Online (Sandbox Code Playgroud)
实体中的"LocationObject"是"可转换的"并存储为CLLocation.
我在performFetch上得到这个:
*由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'不支持的NSSortDescriptor选择器:compareToLocation:'
预先感谢您的帮助 :)
1)当我们添加NSOperation或NSInvocationOperation进入时发生了NSoperationQueue什么?
2)NSoperation和之间有什么区别NSInvocationOperation?
3)哪一个最好?
objective-c ×6
ios ×5
iphone ×5
ipad ×2
xcode ×2
asynchronous ×1
avfoundation ×1
cocoa ×1
core-data ×1
ios5 ×1
localization ×1
retain-cycle ×1
searchbar ×1
uilabel ×1
uitextfield ×1
xib ×1