【发布时间】:2015-02-27 21:41:43
【问题描述】:
我知道有人问过这个问题,但我看到的答案都没有帮助我。如果您认为我错过了可能有帮助的内容,请告诉我。我看到了其他示例,其中视图控制器根本没有尝试设置的变量,但这不是我的情况。
我在转场期间收到此错误:
-[EditPropertyViewController setLawnNumber:]: unrecognized selector sent to instance 0x19a301e0
每当我在 prepareForSegue 中点击这个 if 块时:
if( [segue.identifier isEqual:@"editProperty"])
{
EditPropertyViewController *destView = segue.destinationViewController;
destView.lawnNumber = _lawnNumber;
destView.latitude = _latitude;
destView.longitude = _longitude;
destView.address = _serviceAddressLabel.text;
}
我的 .m 文件顶部确实有 #import "EditPropertyViewController.h"。我确实有一个标识符为“editProperty”的segue,它推动了一个设置为类型EditPropertyViewController的视图控件。
这里是 EditPropertyViewController.h,表明我有我要设置的变量:
#import <UIKit/UIKit.h>
#import <GoogleMaps/GoogleMaps.h>
@interface EditPropertyViewController : UIViewController
@property (nonatomic, strong) GMSMapView *mapView;
@property (nonatomic, strong) GMSCameraPosition *camera;
@property(strong, nonatomic) NSString *address;
@property (nonatomic) CLLocationDegrees latitude;
@property (nonatomic) CLLocationDegrees longitude;
@property (nonatomic) int lawnNumber;
@end
我使用相同的方法和相同的变量类型以及在其他 segues 期间不传递数据的方法,但我看不出我在这里做了什么不同的事情来导致这个问题。我还没有在其他任何地方创建 [customVC setVariable:] 方法,也没有遇到这个问题。
感谢任何建议!
编辑 - 按照@David H 的建议,我在尝试设置值之前添加了这两行:
NSLog(@"Actual class is %@", NSStringFromClass([destView class]));
assert( [destView class] == NSStringFromClass([destView class]));
导致以下输出:
2015-02-27 16:56:27.623 LawnGuru[2730:460942] Actual class is EditPropertyViewController
Assertion failed: ([destView class] == NSStringFromClass([destView class]))
从情节提要中复制/粘贴,这是我试图转到的 VC 类型:“EditPropertyViewController”,这是我正在访问的 .h 文件:#import “EditPropertyViewController.h”
【问题讨论】:
-
您是否在 EditPropertyViewController.m 中使用 @synthesize 来表示草坪数字属性?如果有,请出示。
-
我不是。我在整个项目中都没有使用过@synthesize。事实上,我在 EditPropertyViewController.m 上唯一更改的是添加 (IBAction)prepareForUnwindEditProperty:(UIStoryboardSegue *)segue{},它是空的,因此我可以在未来的视图控制器上点击展开以返回它。没有其他任何东西被触及。
-
@JakeT.: 直接打开头文件查看属性是否存在(我的意思是按定义跳转不打开)
-
XCode 会崩溃吗?我很难理解您是如何看到 lldb 错误消息的,除非是您的程序崩溃了。
-
您可以尝试删除editPropertyViewController 中的lawnNumber 属性,然后重新制作它,以确保Xcode 中不会发生一些奇怪的事情。我看不出你的代码有什么问题。
标签: ios objective-c