Ios [UIMenuController locationInView:]:发送到实例0x7f41ca0的选择器无法识别
在UIWebView上长按时,我将显示UIMenuController菜单项以执行单击操作。我有一张关于UIMenuItem的便条。单击注释时,我需要将位置坐标存储到数据库中。在我使用UILongPress手势将坐标值存储到数据库之前。但是它起作用了。为什么UIMenuItem操作不起作用Ios [UIMenuController locationInView:]:发送到实例0x7f41ca0的选择器无法识别,ios,uiwebview,sqlite,uimenucontroller,uimenuitem,Ios,Uiwebview,Sqlite,Uimenucontroller,Uimenuitem,在UIWebView上长按时,我将显示UIMenuController菜单项以执行单击操作。我有一张关于UIMenuItem的便条。单击注释时,我需要将位置坐标存储到数据库中。在我使用UILongPress手势将坐标值存储到数据库之前。但是它起作用了。为什么UIMenuItem操作不起作用 - (void)note:(id)sender { NSLog(@"Note"); // UILongPressGestureRecognizer *sn=(UILongPressGe
- (void)note:(id)sender {
NSLog(@"Note");
// UILongPressGestureRecognizer *sn=(UILongPressGestureRecognizer *)sender;
xcor = [sender locationInView:wbCont.scrollView].x;
ycor = [sender locationInView:wbCont.scrollView].y;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"db.sqlite"];
NSLog(@"filepath %@",path);
if (sqlite3_open([path UTF8String], &database) == SQLITE_OK) {
const char *sql = [[NSString stringWithFormat:@"SELECT xcoor FROM touch where xcoor = '%f' AND ycoor = '%f' AND artt_id='%@'",xcor,ycor,artID] cStringUsingEncoding:NSUTF8StringEncoding];
NSLog(@"sql is %s",sql);
BOOL favExist = false;
sqlite3_stmt *statement, *addStmt;
if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) {
// We "step" through the results - once for each row.
while (sqlite3_step(statement) == SQLITE_ROW) {
favExist = true;
}
}
if(!favExist){
//Changes
universal_button_tag = arc4random() % 99;
NSLog(@"Universal Button tag: %d",universal_button_tag);
const char *sqlInsert = [[NSString stringWithFormat:@"insert into touch (xcoor,ycoor,artt_id,button_tag) values ('%f','%f','%@','%d')", xcor,ycor,artID,universal_button_tag] cStringUsingEncoding:NSUTF8StringEncoding];
//----
NSLog(@"sql insert is %s",sqlInsert);
// [catID release];
if(sqlite3_prepare_v2(database, sqlInsert, -1, &addStmt, NULL) != SQLITE_OK)
NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database));
NSLog(@"error is %s",sqlite3_errmsg(database));
if(SQLITE_DONE != sqlite3_step(addStmt))
NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database));
}
}
如果我理解正确,您使用的是NSObject的子类,并且没有方法locationInView(手势有该方法),因此您得到了无法识别的选择器得到了答案。但无法发布答案。