トップページ > プログラム > 2017年08月12日 > qaUJfGjG

書き込み順位&時間帯一覧

14 位/200 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000100001002000000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Objective-C [ObjC part:8.1]; [転載禁止]©2ch.net

書き込みレス一覧

Objective-C [ObjC part:8.1]; [転載禁止]©2ch.net
792 :デフォルトの名無しさん[sage]:2017/08/12(土) 07:30:10.75 ID:qaUJfGjG
objective-c property のアクセス制限で相談です。
外部へはreadonlyプロパティとして公開し、内部向けにclass extentionにてreadwriteプロパティとして再定義したクラスがあります。

これを、swiftで使おうとしたところ、generated headerの中にこのプロパティ定義が作られない事に気付きました。(xcode 8.3.3)
多重定義を止めると、普通にプロパティ定義が作られます。

多重定義プロパティでのgenerated header不具合っぽいのですが、良い対処方法を教えてください。

思いつくのは
・Immutable classのサブクラスとしてmutable classを作り、そこでプロパティを再定義
・readwriteのpropertyを別名でclass extentionで定義しインスタンス変数を共有、内部からはwrなプロパティを使う
くらいです。
Objective-C [ObjC part:8.1]; [転載禁止]©2ch.net
794 :デフォルトの名無しさん[sage]:2017/08/12(土) 12:32:23.62 ID:qaUJfGjG
いえ、公開したいのは、readonlyなプロパティなので、上記例で言えばHello.hの方です。

その場合、プロパティ自体が存在しない空のgenerated headerになってしまいました。

Foobar.h
@interface Foobar: NSObject
@property (readonly) uint32_t count
@end
Foobar+internal.h
@interface Foobar ()
@property (readwrite) uint32_t count
@end
Foobar.m
#import "Foobar.h"
@implementation Foobar
@end
Objective-C [ObjC part:8.1]; [転載禁止]©2ch.net
799 :デフォルトの名無しさん[sage]:2017/08/12(土) 15:37:26.13 ID:qaUJfGjG
>>795,797
コメントありがとうございます。指摘通り、Generated interfaceの誤りですね。

今手元でこんな感じです。
ttp://i.imgur.com/D8CWZTP.jpg

上がCocoaアプリ、下がFrameworkに置いたものです。
いずれも、Generated I/Fの中に上書きしたプロパティが出てきません。

Xcode再インストールが先でしょうか?
Objective-C [ObjC part:8.1]; [転載禁止]©2ch.net
801 :デフォルトの名無しさん[sage]:2017/08/12(土) 15:57:11.27 ID:qaUJfGjG
ttp://light.dotup.org/uploda/light.dotup.org471442.png.html
すみません貼り直します。

Obj-c => Swift が目標です。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。