我通过使用解决了我的问题CGColorGetComponents,但我想知道究竟是什么原因.
我正在使用以下实例执行以下操作UIColor *firstColour:
[firstColour getRed:&r green:&g blue:&b alpha:nil];
Run Code Online (Sandbox Code Playgroud)
这在模拟器上工作得非常好.然后我在我的设备上测试了它,并得到了这个错误:
UIDeviceRGBColor getRed:green:blue:alpha无法识别的选择器发送到实例
经过对互联网的一些研究,我发现UIColor实际上已经被子类取代了UIDeviceRGBColor.很好,但不应该像子类一样工作UIColor并接受(至少)相同的方法?
我启用了Zombie,但显然这不是一个内存管理问题,就像大多数人在论坛上说的那样.我找不到文档,UIDeviceRGBColor所以我不知道它应该如何表现.有人知道它为什么会发生,最重要的是,如果这可能再次发生另一种方法吗?
谢谢.
好的,我正在做一个简单的查找.我有一个NSString对象数组和一个在数组元素中搜索的字符串.
这一切似乎都有效,直到我尝试将一个匹配添加到一个新的可变数组来保存搜索结果.stringHolder变量获取字符串,resultsCollectorArray甚至获得正确数量的新元素,但每个元素都是空的并且"超出范围".这是方法:
@implementation NSArray (checkForString)
-(NSMutableArray *) checkForString: (NSString *) matchSought
{
long unsigned numberofArrayElements;
long unsigned loop = 0;
NSRange searchResults;
NSMutableArray * resultCollectorArray = [[NSMutableSet alloc] init];
id stringHolder;
numberofArrayElements = [self count];
while (loop < numberofArrayElements) {
searchResults.length = 0;
searchResults = [[self objectAtIndex: loop] rangeOfString: matchSought options:NSCaseInsensitiveSearch];
if (searchResults.length > 0) {
stringHolder = [self objectAtIndex: loop];
[resultCollectorArray addObject: stringHolder];
}
loop++;
}
return [resultCollectorArray autorelease];
}
Run Code Online (Sandbox Code Playgroud)
一旦我们回到程序的主要部分,我得到一个无法识别的选择器发送到应该接收该方法结果的可变数组.这是主要部分:
#import <Foundation/Foundation.h>
#import "LookupInArray.h"
int main (int argc, …Run Code Online (Sandbox Code Playgroud) 可能重复:
发送到实例的无法识别的选择器
嗯......像其他许多人一样,我得到了一个"无法识别的选择器发送到实例"错误......
当我按下按钮时会出现问题,例如在这种情况下:
-(IBAction)gotoTone:(id)sender
{
if(self.tone == nil)
{
Tone *toneMain = [[Tone alloc]
initWithNibName:@"Tone" bundle:[NSBundle mainBundle]];
self.tone = toneMain;
[toneMain release];
}
[self.navigationController pushViewController:tone animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
错误是:由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [Tone gotoTone:]:无法识别的选择器发送到实例0x531caa0'
在我将新视图作为第一个视图呈现给用户之后插入错误...此外,我使用导航栏,首先我忘记进入MainWindow.xib并将导航控制器更改为新视图,但现在已经解决了.
你可以看到我的整个代码:
其中文件发生.H:http://snipt.org/xnoO 其中文件发生的.m:http://snipt.org/xnoM
不要介意所有的评论线,直到我得到这个固定...
我已经尝试通过阅读"无法识别的选择器发送到实例"的其他情况找到解决方案,但我想我只是没有看到解决方案.我已经检查了我的IB连接,我已经清理了这个项目......
任何帮助将不胜感激
一个UILongPressGestureRecognizer添加到我的ImageView用行动handleLongPressOnPhotos.最相关的代码如下:
- (IBAction)handleLongPressOnPhotos:(UIImageView *)sender{
self.imageWillBeSaved = sender;
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Save the photo" otherButtonTitles: @"Go to the Original photo", nil];
actionSheet.actionSheetStyle = UIActionSheetStyleDefault;
[actionSheet showInView:self.view];
[actionSheet release];
}
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
switch (buttonIndex) {
case 0:
UIImageWriteToSavedPhotosAlbum(self.imageWillBeSaved.image, self, @selector(image: didFinishSavingWithError:contextInfo:), nil);
break;
default:
break;
}
}
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
if (error != NULL)
{
// handle error
}
else
{
// handle ok status
}
}
Run Code Online (Sandbox Code Playgroud)
单击操作表上的"保存照片"按钮时,会显示一条错误消息:- [UILongPressGestureRecognizer …
iphone uiactionsheet uigesturerecognizer ios unrecognized-selector
我有一些非常奇怪的东西:一种方法导致unrecognized selector sent to instance,但根本没有NSLog().
我做了一个自定义的NSControl子类,我尝试绘制我的自定义单元格:
- (void)drawRect:(NSRect)dirtyRect {
NSLog(@"DrawRect entered!");
[[NSColor grayColor] set];
[NSBezierPath fillRect:[self bounds]];
unsigned int i, count = [cells count];
NSRect cellRect = NSMakeRect(0, 0, ([self bounds]).size.width, cellHeight);
for (i = 0; i < count; i++) {
NSLog(@"Drawing cell %d at: %@", i, NSStringFromRect(cellRect));
MKMenuCell *cell = [cells objectAtIndex:i];
[cell drawWithFrame:cellRect inView:self];
cellRect.origin.y += cellHeight;
}
}
Run Code Online (Sandbox Code Playgroud)
而且-[MKMenuCell drawWithFrame:inView:]:
- (void)drawWithFrame:(NSRect)bounds inView:(NSView *)controlView {
NSLog(@"-drawWithFrame:inView:");
NSMutableDictionary *strAttribs = [[NSMutableDictionary alloc] …Run Code Online (Sandbox Code Playgroud) 我的应用程序一直崩溃,并显示以下消息:
*由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [NSConcreteMutableData base64EncodedStringWithOptions:]:无法识别的选择器发送到实例0x776e920'
这是代码的一部分.任何帮助将不胜感激:
-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
// Saving the image in the uiimage "myImage".
UIImage *myImage = [info objectForKey:UIImagePickerControllerOriginalImage];
NSString *imageString = [self encodeToBase64String:myImage];
[self dismissViewControllerAnimated:YES completion:NULL];
}
- (NSString *)encodeToBase64String:(UIImage *)image{
NSString * test = [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
return test;
}
Run Code Online (Sandbox Code Playgroud)
我已经检查过,UIImage中有一个图像.谢谢.
在GitHub我有一个简单的iPhone应用程序,它从社交网络Mail.ru获取用户信息(通过使用OAuth):

它确实获取并打印信息,但随后崩溃.
作为一个iOS编程新手,我对下面的输出感到困惑(也请看看PasteBin的完整输出):
2014-01-21 21:21:10.873 oauthMailru[8228:3307] -[__NSArrayM objectForKeyedSubscript:]: unrecognized selector sent to instance 0x8a97290
2014-01-21 21:21:10.875 oauthMailru[8228:3307] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM objectForKeyedSubscript:]: unrecognized selector sent to instance 0x8a97290'
*** First throw call stack:
(
0 CoreFoundation 0x01aa65e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x018298b6 objc_exception_throw + 44
2 CoreFoundation 0x01b43903 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x01a9690b ___forwarding___ + 1019
4 CoreFoundation 0x01a964ee _CF_forwarding_prep_0 + 14
5 oauthMailru 0x00003a62 __47-[ViewController fetchMailruWithToken:ForUser:]_block_invoke …Run Code Online (Sandbox Code Playgroud) 当我从谷歌寻找答案时,大多数答案都说你试图在NSArray上使用不受支持的长度.
这里的问题是我甚至没有在我的代码中使用任何NSArray或长度.
我有一个
NSMutableArray *filteredContent;
Run Code Online (Sandbox Code Playgroud)
哪里filteredContent将包含来自plist的字典.
一切都很好,直到写cell.textLabel.text在牢房上tableView.
选中NSLog并且内容确实是一个数组.
这是我尝试编写单元格文本的方法:
cell.textLabel.text=[[self.filteredContent objectAtIndex:indexPath.row] valueForKey:@"recipeName"];
Run Code Online (Sandbox Code Playgroud)
但它给了我错误所以我改为:
NSString *myValue = [self.filteredContent valueForKey:@"recipeName"];
cell.textLabel.text=myValue;
Run Code Online (Sandbox Code Playgroud)
但结果是一样的.我不知道我得到了什么错误.
更多详情:
[results addObject:@[recipe]];
Run Code Online (Sandbox Code Playgroud)
这是我创建主数组的地方,而不是将其传递给PageViewwith seguefilteredContent = results
编辑:
recipe = arrayOfPlist[i]; 其中arrayOfPlist
NSArray *arrayOfPlist = [[NSArray alloc] initWithContentsOfFile:path];
//Output to NSLog(@"FIltered Content : %@", self.filteredContent);
FIltered Content : (
(
{
category = main;
difficultyLevel = "3/5";
numberOfPerson = 5;
recipeDetail = "Bulguru koy su koy beklet pisir ye …Run Code Online (Sandbox Code Playgroud) cocoa-touch objective-c uitableview ios unrecognized-selector
我通过默认中心发布通知,如下所示:
NSNotificationCenter.defaultCenter().postNotificationName(ColorDidGetTappedNotification, object: self)
Run Code Online (Sandbox Code Playgroud)
我在另一个实例中观察通知,如下所示:
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("colorDidGetTapped:"), name: ColorDidGetTappedNotification, object: nil)
....
func colorDidGetTapped(notification: NSNotification) {
println("Notification recieved")
}
Run Code Online (Sandbox Code Playgroud)
但我得到一个无法识别的选择器异常:
更新1
*** NSForwarding: warning: object 0x7d564490 of class '_D.GameModel' does not implement methodSignatureForSelector: -- trouble ahead
Unrecognized selector -[_D.GameModel colorDidGetTapped:]
Run Code Online (Sandbox Code Playgroud) 我在这里编写简单的代码
self.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Cancel, target: self, action: Selector("cancelClick"))
Run Code Online (Sandbox Code Playgroud)
实际功能
func cancelClick(isAlert:String = "yes"){
self.dismissViewControllerAnimated(true, completion: { () -> Void in
if isAlert == "yes" {
Functions.displayAlert("called")
}
})
}
Run Code Online (Sandbox Code Playgroud)
self.cancelClick() - 工作,但如果我没有通过参数 self.cancelClick(isAlert:"no") - 坠毁那么如果我必须在默认参数中传递参数,我的选择器应该是什么Selector("cancelClick"),Selector("cancelClick:")但都尝试过但没有运气。
ios ×7
objective-c ×6
cocoa-touch ×2
iphone ×2
swift ×2
cocoa ×1
nscell ×1
nscontrol ×1
uicolor ×1
uitableview ×1