相关疑难解决方法(0)

swift中类的属性列表

注意:有发布超过Objective C的一个类似的问题在这里,但我想实现它迅速.

我有一个像swift一样声明的类:

import UIKit

class EachDayCell : UITableViewCell
{

    @IBOutlet var dateDisplayLabel : UITextField
    @IBOutlet var nameDisplayLabel : UITextField

    @IBAction func goToPendingItems(sender : AnyObject) {
    }
    @IBAction func showDateSelectionPicker(sender : AnyObject) {
    }

    init(style: UITableViewCellStyle, reuseIdentifier: String!)
    {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想在swift中获取一个数组:dateDisplayLabel,nameDisplayLabel.

我怎样才能做到这一点?

properties class swift

40
推荐指数
3
解决办法
3万
查看次数

如何找到符合KVC标准的Objective-C对象的所有属性键?

是否有一个方法返回符合NSKeyValueCoding协议的对象的所有键?

沿着这条线的东西[object getPropertyKeys]将返回NSString对象的NSArray.它适用于任何符合KVC标准的对象.这种方法存在吗?到目前为止,我还没有找到任何搜索Apple文档的内容.

谢谢,G.

cocoa properties introspection objective-c key-value-observing

25
推荐指数
1
解决办法
1万
查看次数

基于NSObject的类的iOS JSON序列化

我想JSON序列化我自己的自定义类.我在Objective-C/iOS5工作.我想要做以下事情:

Person* person = [self getPerson ]; // Any custom object, NOT based on NSDictionary
NSString* jsonRepresentation = [JsonWriter stringWithObject:person ];
Person* clone = [JsonReader objectFromJson: jsonRepresentation withClass:[Person Class]];
Run Code Online (Sandbox Code Playgroud)

似乎NSJSONSerialization(和其他几个库)要求'person'类基于NSDictionary等.我想要一些能够序列化我想要定义的任何自定义对象(在合理范围内).

让我们假设Person.h看起来像这样:

#import <Foundation/Foundation.h>
@interface Person : NSObject 
@property NSString* firstname;
@property NSString* surname;
@end
Run Code Online (Sandbox Code Playgroud)

我希望为实例生成的JSON看起来类似于以下内容:

{"firstname":"Jenson","surname":"Button"}
Run Code Online (Sandbox Code Playgroud)

我的应用程序使用ARC.我需要一些能够使用对象进行序列化和反序列化的东西.

非常感谢.

serialization json objective-c nsobject ios

18
推荐指数
2
解决办法
3万
查看次数

Objective-C:如何获取`objc_property_t`属性的值?

我使用以下代码迭代对象的所有属性.我成功地检索property namechar,但我不知道如何得到property value它的id类型.有关如何实现这一目标的任何想法?

objc_property_t *allProperties = class_copyPropertyList([currentObject class], &allPropertyCount);

for (unsigned int i = 0; i < allPropertyCount; i++) {

      objc_property_t property = allProperties[i];
      const char * propertyName = property_getName(property);

}
Run Code Online (Sandbox Code Playgroud)

================================================== ======================================

编辑:谢谢大家的好评和答案.有些人问我为什么需要这个.嗯,原因如下:

我有几个同类的对象.让我们说这个类是Person,它的实例是玛丽,约翰和大卫.每个对象的属性设置如下:

mary.age = [NSNumber numberWithInt:20];
john.age = [NSNumber numberWithInt:45];
david.age = [NSNumber numberWithInt:20];

mary.gender = @"female";
john.gender = @"male";
david.gender = @"male";
Run Code Online (Sandbox Code Playgroud)

我的目的是找到一种基于给定属性名称Eg对对象进行分组的通用方法.这将创建2组[大卫和玛丽]和[约翰]:

[self groupBaseDataObjects:self.persons withPropertyName:"age"];
Run Code Online (Sandbox Code Playgroud)

还有这个:

[self groupBaseDataObjects:self.persons withPropertyName:"gender"]; 
Run Code Online (Sandbox Code Playgroud)

还将创建2组[约翰和大卫]和[玛丽]

iphone objective-c ipad

6
推荐指数
1
解决办法
6656
查看次数

如何从AppDelegate获取navController.

我想知道,如何从AppDelegate = [[UIApplication sharedApplication] delegate]iPhone编程中获取navController .例如,在我们引用AppDelegate的其他viewController中.

在applicationDelegate.h中,我们有:

UINavigationController *navController;
Run Code Online (Sandbox Code Playgroud)

以及applicationDelegate.m中的以下内容

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

   [window addSubview: navController.view];
   [window makeKeyAndVisible];
}
Run Code Online (Sandbox Code Playgroud)

无论如何从mainWindow获取navController:

UIWindow *mainWindow = [appDelegate window];
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uinavigationcontroller uiapplicationdelegate ios

6
推荐指数
1
解决办法
3万
查看次数

iPhone OS:从匿名对象获取方法和变量列表

我正在构建我的第一个iPhone/Obj-c应用程序,我有大量的数据保存子类,我将其传递给一个引用函数.对于引用函数,这些对象是匿名的,我需要找到一种方法来访问每个传递对象的所有变量.我一直在使用预先构建的NSArray和选择器来执行此操作,但是有超过30个条目(并且正在增长),手动执行它是一种愚蠢的行为.必须有一种方法来动态查找匿名对象的所有变量.

OBJ-C运行时运行文档提到这个问题,但据我可以告诉这是不是可以在iPhone OS.如果是,那么我不理解实施,需要一些指导.之前曾问过一个类似的问题,但我认为他们再次讨论OSX而不是iPhone.

有什么想法吗?

-(NSString*)cite:(id)source {
 NSString *sourceClass = NSStringFromClass([source class]);

 // Runs through all the variables in the manually built methodList
 for(id method in methodList) {
  SEL x = NSSelectorFromString(method);
  // further implementation

 // Should be something like
 NSArray *methodList = [[NSArray alloc] initWithObjects:[source getVariableList]]
 for(id method in methodList) {
  SEL x = NSSelectorFromString(method);
  // Further implementation
 }
Run Code Online (Sandbox Code Playgroud)

iphone objective-c

3
推荐指数
2
解决办法
1627
查看次数

将对象转换(或复制)到Objective-C中的子类实例

我想将一个对象的实例转换为该对象类的子类的实例,以便我可以在Objective-C中使用该子类的其他方法和属性.

如何以不需要在复制方法中对该对象类的属性进行硬编码的方式执行此操作?

macos objective-c objective-c-runtime ios

3
推荐指数
1
解决办法
1179
查看次数

将所有对象属性放入NSDictionary或NSArray中

有没有办法自动返回类中所有(公共)属性的NSDictionary?您可以假设所有属性都是属性列表,并且我不想只是将指针移交给类本身.任何现有的魔法可以解决这个问题?

我知道我可以懒惰地实例化一个NSDictionary并手动用getter中的属性填充它.

iphone properties objective-c nsdictionary ios

2
推荐指数
1
解决办法
880
查看次数